集合

# 集合
# 1、元素必须不可变
# 2、元素排列是无序的
# 3、所有元素不同
# s = set('hello')
# print(s) #{'h', 'l', 'o', 'e'}

# s1 = set(['lei','lei',123])
# print(s1) #{123, 'lei'}

#s = {1,2,3,4,5}
# s.add('3')
# s.add('s')
# s.add(3)
# print(s) #{1, 2, 3, 4, 5, '3', 's'}

# clear 清空 copy复制 pop 删除是随机的
# 定向删除需要用 remove 不存在元素会报错
# discard 删除是不会报错的

# li1 = [12,34,43,1,'232']
# li2 = [12,321,4,1,'23']
# li1_s = set(li1)
# li2_s = set(li2)

# 求交集
# print(li1_s.intersection(li2_s))
# print(li1_s&li2_s)
# {1, 12}
# {1, 12}

# 求并集
# print(li1_s.union(li2_s))
# print(li1_s|li2_s)
# {1, 34, 321, 4, '232', 43, 12, '23'}
# {1, 34, 321, 4, '232', 43, 12, '23'}

# differrnce求差集 differrnce_update 求差后自动更新值
# print(li1_s-li2_s) #{34, 43, '232'}
# print(li2_s-li1_s) #{321, '23', 4}
# print(li2_s.difference(li1_s)) # {321, 4, '23'}

# 交差补集
# print(li1_s.symmetric_difference(li2_s)) #{321, 34, 4, '232', 43, '23'}
# print(li1_s^li2_s) # {321, 34, 4, '232', 43, '23'}

# 检查是否无交集
# s1 ={1,2}
# s2 ={4,5}
# print(s1.isdisjoint(s2)) # True

# 检查子集、父集
# s1 = {1,2}
# s2 = {1,2,3}
# print(s1.issubset(s2)) # True s1 是s2的子集
# print(s2.issuperset(s1)) # True s2 是s1 的父集

# update 更新多个值,只要更新值可迭代就能传递 add 更新单个值
# s1 = {1,2}
# s2 = {1,2,3}
# s1.update(s2)
# print(s1) # {1, 2, 3}
# s1.union(s2)
# print(s1) # {1, 2, 3}
# s1.add(4)
# print(s1) # {1, 2, 4}
# s1.update((3,4))
# print(s1) # {1, 2, 3, 4}

# 不可变集合定义
# s = frozenset('hello')
# print(s) #frozenset({'h', 'o', 'e', 'l'})

posted @ 2018-10-18 21:12  文昌  阅读(90)  评论(0)    收藏  举报