# 数据类型分类 # 可变类型:列表、字典 # 不可变类型:整数、字符串、元组 # 集合 set # 集合中存放的是不可变类型 # 集合的元素不可重复 # 集合是无序的 # 若设置集合为字符串,则遍历字符串的每个字符添加到集合 s = set('aabbcc') print(s) # 结果为{'b', 'a', 'c'} s = set(['aa', 'bb', 'cc', 'aa']) print(s) # 结果为{'aa', 'bb', 'cc'}要与下方做对比 # # 列表等可变类型无法作为元素添加至集合 # s = set(['aa', 'bb', 'cc', 'aa'], 1) # print(s) # 结果为{'aa', 'bb', 'cc'} # 此时会报错 # add('abc') # 追加一个元素(无序) s.add('abc') print(s) # update(s2) # 求并集并更新 s1 = {1, 2} s2 = {3, 4} s1.update(s2) print(s1) # pop() # 随即删除集合的元素,删除的结果可获取 v = s.pop() print(s, v) # remove('ac') # 指定元素移除 s.remove('cc') print(s) # 集合运算 s1 = {'abc', 'zs', 'ls'} s2 = {'zs', 'ls', 'bcd'} # 求交集& print(s1 & s2) print(s1.intersection(s2)) # 求并集| print(s1 | s2) print(s1.union(s2)) # 求差集- print(s1 - s2) print(s1.difference(s2)) # 求交叉补集^ print(s1 ^ s2) print(s1.symmetric_difference(s2)) s1 = {'abc', 'zs', 'ls'} s2 = {'zs', 'ls', 'bcd'} # 求差集并更新 s1.difference_update(s2) print(s1) # 判断无交集 s1 = {1, 2} s2 = {3, 4} print(s1.isdisjoint(s2)) # 判断子集 s1 = {1, 2} s2 = {1, 2, 3, 4} print(s1.issubset(s2)) # 判断父集 s1 = {1, 2} s2 = {1, 2, 3, 4} print(s2.issuperset(s1)) # 集合是可变类型,但是也可以通过来定义不可变集合 s = frozenset('abcd') print(s) # 结果为 frozenset({'b', 'c', 'd', 'a'})