学习pythonD11,集合

# python解压赋值:
# for x,y,z in ['abc','ddd','fff']:
#     print(x,y,z)

# 需求:对两个列表进行分析,找出他们两个重合的元素
# friends1 = ['big','fast','serious','neverous']
# friends2 = ['sad','slowly','happy','big']
# l=[]
#
# for x in friends1:
#     if x in friends2:
#         l.append(x)
# print(l)


# 创建集合的两种方法:
# s = {1,2}
# s = set({1,2})
# print(type(s))

# 默认s = {}是空字典
# 定义空集合s = set({})

# 集合特性:1、无序;2、不重复;3、集合内的元素必须为不可变类型
# res = set('helllo')
# print(res)  #  集合里去重

# l = set([123,323,4,4])    # 列表类型转为集合类型
# print(l)
# l = set([123,332,[223,42]])  # 报错,转换成的集合类型里有列表可变元素

# dic = {'k1':222,[222]:333}  # 字典中的key必须为不可变类型
# print(dic)


# 内置方法
# =====================集合的关系运算=========================

# friends1 = {'zero','kevin','jason','fang'}
# friends2 = {'one','kevn','jason','fang'}
# 取交集,找到两者共同的好友
# res =  friends2 & friends1
# print(res)  #  print(friends1.intersection(friends2))

# 取并集,两者所有的好友
# res = friends1 | friends2
# print(res)

# 取差集,friends1独有的好友,有先后顺序一说
# print(friends1 - friends2)   # print(friends1.difference(friends2))
# friends2独有的好友
# print(friends2 - friends1)   # print(friends2.difference(friends1))

# 对称差集:求两个用户独有的好友们(即去掉共有的好友)
# print(friends2 ^ friends1)  # print(friends1.symmetric_difference(friends2))

# 父子集:包含的关系,若是包含的关系,输出为True
# s1 = {1,2,3}
# s2 = {1,2,4}
# print(s1 > s2)  # False,不存在包含关系
# s3 = {1,2}
# s4 = {1,2,3}
# print(s1 > s3)  # True,为包含关系,当s1大于或者等于s2时,才能说是s1为s2他爹
# print(s2.issubset(s1))  # s2<s1 => True
# print(s1.issubset(s3))


# =============================去重=============================
# 1、只能针对不可变类型去重
# print(set({[111,23,4],23,4,5})) # 错误
# 2、无法保证原来的顺序
# l = [1,2,3,4,5,6,2,6,7]
# print(list(set(l)))  # 完成了去重的作用,但是输出没有顺序


# 需求:把重复的元素去除
# l=[
#     {'name':'lili','age':18,'sex':'male'},
#     {'name':'jack','age':73,'sex':'male'},
#     {'name':'tom','age':20,'sex':'female'},
#     {'name': 'lili', 'age': 18, 'sex': 'male'},
#     {'name': 'lili', 'age': 18, 'sex': 'male'},
# ]
# print(type(l))
# new_l=[]
# for x in l:
#     if x not in new_l:
#         new_l.append(x)
# print(new_l)


# 其他内置方法.需要掌握的内置方法:discard、update、pop、add
# discard,删除元素不存在do nothing
# s={1,2,3}
# s.discard(4)
# print(s)
"""
Remove an element from a set if it is a member.

If the element is not a member, do nothing.
"""
# s.remove(4)  # 删除元素不存在报错

# s.update({1,3,5}) #用本身和其他元素的并集更新集合。
# print(s)

# difference,求差集,不会将值覆盖给原集合,difference_update会将值覆盖给原集合
# s.difference({3,4,5})
# print(s)

# pop删除集合元素,因为集合没有key,所以是随机的删除
# res = s.pop()
# print(res)

# add,添加元素
# s.add(4)
# print(s)

# res = s.isdisjoint({4,5,6})   # 判断两个集合是否独立,如果不独立返回False
# print(res)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值