Python的set(集合)类型常见用法

记录下,方便自己查阅,持续更正补充。

集合(set)是一个 无序无重复元素 序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

1.检查列表哪些元素重复了

>>> 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)

2.增加删除元素

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'}

3.包含与被包含

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

4.并集,交集,差集,对称差集

union(), intersection(),difference(),symmetric_difference()

并集:

Python的set(集合)类型常见用法_第1张图片

>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.union(s3)
{'a', 'b', 'd', 'c'}
交集

Python的set(集合)类型常见用法_第2张图片

>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.intersection(s3)
{'a', 'b'}
差集

Python的set(集合)类型常见用法_第3张图片

>>> s1 = {'a', 'b', 'c'}
>>> s2 = {'a', 'b'}
>>> s1.difference(s3)
{'c'}
对称差集

Python的set(集合)类型常见用法_第4张图片

>>> s1 = {'a', 'b', 'c'}
>>> s3 = {'a', 'b', 'd'}
>>> s1.symmetric_difference(s3)
{'d', 'c'}
注:以上操作依次可写成 s1|s3,s1&s3,s1-s3,s1^s3,前提是s1和s3都是集合类型,否则不可以直接简写。

你可能感兴趣的:(pure,python)