set集合是无序的,不能通过索引和切片来做一些操作
#创建集合
>>> n = set('hello')
>>> print(n)
{'l', 'o', 'e', 'h'}
#集合添加、删除
#(1)添加
>>> n = set('hello')
>>> n.add('onion')
>>> print(n)
{'h', 'l', 'o', 'onion', 'e'}
#(2)删除
#随机删除
>>> n.pop()
#指定删除
>>> n.remove('h') #删除元素不存在会报错
>>> n.discard('mmmmmm') #删除元素不存在不会报错
#交集
m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.intersection(n))
print(m & n)
{'google', 'baidu'}
#并集
m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.union(n))
print(m | n)
{'Microsoft', 'csdn', 'baidu', '163', 'google'}
#差集
m={'google','baidu','csdn','163'}
n={'google','baidu',Microsoft'}
print(m - n)
print(m.difference(n)
{'163', 'csdn'}
#交叉补集
m={'google','baidu','csdn','163'}
n={'google','baidu','Microsoft'}
print(m.symmetric_difference(n))
print(m ^ n)
{'Microsoft', 'csdn', '163'}
#difference_update 表示集合A中存在,但是在集合B中不存在的元素,并更新A集合,没有返回值。
m.difference_update(n)
print(m)
{'csdn', '163'}
#判断是否是相交集,返回bool值
s1={1,2}
s2={2,3,5}
print(s1.isdisjoint(s2))
False
#判断是否是其子集
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))#True s1 是s2 的子集
print(s2.issubset(s1))#False
#判断是否是超集,返回bool值
print(s2.issuperset(s1))#True s1 是s2 的父集
s1={1,2}
s2={1,2,3}
# s1.update(s2) #更新多个值
# s1.add(1,2,3,4) #更新一个值
# s1.union(s2) #不更新
'''frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。'''
>>>a = frozenset(range(10)) # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob')
>>> b
frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合
>>>
11-17
11-17