一个集合内部的操作
添加元素
add
- 参数是单个元素
- 示例:
s = {'a', 'b', 'c'} s.add('x') print(s) s.add('x') print(s)
- 输出:
update
- 参数可以是列表,元组,字典;注意参数是字典时只向集合中添加该字典的键值
- 示例:
s = {'a', 'b', 'c'} s.update(('x')) print(s) s.update(['x', 'y', 'z']) print(s) s.update({1: 'first', 2: 'second', 3: 'third'}) print(s)
- 输出:
删除元素
remove
- 如果元素不存在会报错
- 示例:
s = {'a', 'b', 'c'} s.remove('c') print(s) s.remove('x') print(s)
- 输出:
discard
- 即使元素不存在也不会报错
- 示例:
s = {'a', 'b', 'c'} s.discard('c') print(s) s.discard('x') print(s)
- 输出
pop
- 随机删除集合中一个元素
- 示例:
s = {'a', 'b', 'c'} for i in range(5): tmp = s.pop() print(s) s.add(tmp)
- 输出:
计算元素个数
len
- 示例:
s = {'a', 'b', 'c'} print(len(s))
- 输出:
清空集合
clear
- 示例:
s = {'a', 'b', 'c'} s.clear() print(s)
- 输出:
判断某个元素是否在集合中
in
- 示例:
s = {'a', 'b', 'c'} print('a' in s) print('s' in s)
- 输出:
多个集合之间的操作
求并集
- 语法:
union / |
- 维恩图:
- 示例:
输出:set_1 = {'a', 'b', 'c'} set_2 = {'c', 'd', 'e'} print(set_1.union(set_2)) print(set_1 | set_2)
求交集
-
语法:
intersection / intersection_update / &
注:intersection
方法会将结果返回,而intersection_update
则直接将原集合更新为交集,即在原集合上修改,无返回值 -
维恩图:
-
示例:
set_1 = {'a', 'b', 'c'} set_2 = {'c', 'd', 'e'} print(set_1.intersection(set_2)) print(set_1 & set_2) print(set_1.intersection_update(set_2)) print(set_1)
输出:
求差集
- 语法:
difference / difference_update / -
注:difference
方法会将结果返回,而difference_update
则直接将原集合更新为差集,即在原集合上修改,无返回值 - 维恩图:
- 示例:
输出:set_1 = {'a', 'b', 'c'} set_2 = {'c', 'd', 'e'} print(set_1.difference(set_2)) print(set_1 - set_2) print(set_1.difference_update(set_2)) print(set_1)
判断两个集合是否相交
- 语法:
isdisjoint
- 维恩图:
- 示例:
输出:set_1 = {'a', 'b', 'c'} set_2 = {'c', 'd', 'e'} print(set_1.isdisjoint(set_2))
判断集合是否为子集
- 语法:
issubset / issuperset
注:issubset
判断指定集合是否为该方法参数集合的子集;issuperset
判断该方法的参数集合是否为指定集合的子集 - 维恩图:
- 示例:
输出:set_1 = {'a', 'b', 'c'} set_2 = {'c'} print(set_1.issubset(set_2)) print(set_1.issuperset(set_2))
求对称差集
-
语法:
symmetric_difference / symmetric_difference_update / ^
注:symmetric_difference
方法会将结果返回,而symmetric_difference_update
则直接将原集合更新为对称差集,即在原集合上修改,无返回值 -
维恩图:
-
示例:
set_1 = {'a', 'b', 'c'} set_2 = {'c', 'd', 'e'} print(set_1.symmetric_difference(set_2)) print(set_1 ^ set_2) print(set_1.symmetric_difference_update(set_2)) print(set_1)
输出: