记录下,方便自己查阅,持续更正补充。
集合(set)是一个 无序 的 无重复元素 序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> eg = ['a', 'a', 'b']
>>> s = set([x for x in eg if eg.count(x) > 1])
>>> print(s)
{'a'}
若只需要判断是否有重复元素,可以直接s = set(eg),再比较len(eg)与len(s)
add(),update(),remove()
>>> s = {'a', 'b', 'c'}
>>> s.add('d') # 增加一个元素
>>> s
{'c', 'd', 'b', 'a'}
>>> s.update(['1', '2']) # 增加多个元素,函数参数必须是可迭代对象
>>> s
{'a', '2', '1', 'c', 'b', 'd'}
>>> s.remove('1') # 删除一个元素
>>> s
{'a', '2', 'c', 'b', 'd'}
issuperset(),issubset()
>>> s1 = {'a', 'b', 'c'}
>>> s2 = {'a', 'b'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.issuperset(s2) # 解读:s1是比s2大的集合
True # 是的
>>> s1.issubset(s2) # 解读:s1是比s2小的集合
False # 错误
>>> s1.issubset(s3)
False
>>> s1.issuperset(s3)
False
union(), intersection(),difference(),symmetric_difference()
>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.union(s3)
{'a', 'b', 'd', 'c'}
>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.intersection(s3)
{'a', 'b'}
>>> s1 = {'a', 'b', 'c'}
>>> s2 = {'a', 'b'}
>>> s1.difference(s3)
{'c'}
>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.symmetric_difference(s3)
{'d', 'c'}