集合
集合是可变数据类型,但它里面的元素必须是不可变的数据类型。
集合无序且不重复,有着字典的外形,但内部元素不是键值对。
set1 = set({1,2,3})set2 = {1,2,3,[2,3],{'name':'mumu'}} # 错的print(set1)print(set2)set1 = {'mm', 'mumu', '怪大叔', '小哥哥'}
1、集合的增删查
set = {'mm', 'mumu', '怪大叔', '小哥哥'}
增
set.add('男神') # 随机无序添加set.update('abc') # 拆分迭代,随机添加
删
set.pop() # 随机删除,有返回值set.remove('mm') # 按元素,若没有,则会报错# set.clear() # 清空# del set # 删除集合
查
for i in set: print(i)
2、集合的基本运算
交集
A = {1, 2, 3, 4}B = {3, 4, 5, 6, 7}C = A.intersection(B) # {3, 4}D = A & B # {3, 4}
并集
C = A.union(B) # {1, 2, 3, 4, 5, 6, 7}D = A | B # {1, 2, 3, 4, 5, 6, 7}
反交集
C = A.symmetric_difference(B) # {1, 2, 5, 6, 7}D = A ^ B # {1, 2, 5, 6, 7}
差集
C = A.difference(B) # A独有的部分,{1, 2}D = A - B # A独有的部分,{1, 2}
集合判断
A = {1,2,3,}B = {1,2,3,4,5,6}print(A < B)print(A.issubset(B)) # 这两个相同,都是说明A是B子集。print(B > A)print(B.issuperset(A)) # 这两个相同,都是说明B是A超集。
3、去重
li = [1, 2, 33, 33, 2, 1, 4, 5, 6, 6]set1 = set(li)li = list(set1) # [1, 2, 33, 4, 5, 6]
4、不可变的集合
s = frozenset('mumu哟')print(s,type(s)) # 无序,拆分,元素唯一,frozenset({'u', '哟', 'm'})for i in s: print(i)