集合
集合的描述
set是一个无序不重复的序列,可以用{}
或者 set()
函数创建集合,它存放不可变类型(如字符串、数字、元组)数据。
注意:创建一个空集合必须使用set()
方法,因为{}
是用来生成一个空字典的。
集合的方法
- add()
将元素添加到集合中。
s1 = {1,2,3,4,5} s1.add('new_number') print(s1)
{1, 2, 3, 4, 5, 'new_number'}
- update()
可一次更新多个值。
# update(x),将x添加到集合中,且参数可以是列表、元组、字典等 s2 = set(('aaa', 'ccc', 'fff')) # 添加字典只能添加不可变的--键 dict_1 = {'name': 'bb', 'age': 'cc', 'aaa': 11} s2.update(dict_1) print("新集合", s2)
新集合 {'name', 'aaa', 'fff', 'ccc', 'age'}
- remove()
移除集合中的某个元素。
s3 = set(('aaa', 'ccc', 'fff')) s3.remove('ccc') print(s3)
{'aaa', 'fff'}
此外还有一个discard()
函数也能移除集合中的元素,与remove()
不同的是,移除的元素是字典中没有的元素时discard()
不会报错。
- pop()
随机删除集合中的一个元素。
s4 = set(('aaa', 'ccc', 'fff')) s4.pop() print(s4)
{'aaa', 'ccc'}
- clear()
清空集合
-
计算集合元素个数。
s5 = set(('aaa', 'ccc', 'fff')) print('集合元素个数为:'+str(len(s5)))
-
copy()
复制一个新的集合。
s6 = s5.copy() print(s6)
{'aaa', 'ccc', 'fff'}
- difference()
求差集,也可以用-
。
s = set(('a', 'cc', 'f')) s1 = {'a', 'f', 1, 'ww'} # 两种求差集的方法 print("在s中不在s1中: ", s.difference(s1)) print("在s1中不在s中: ", s1-s) 在s中不在s1中: {'cc'} 在s1中不在s中: {'ww', 1}
- intersection()
求交集,也可以用&
s = set(('a', 'cc', 'f')) s1 = {'a', 'f', 1, 'ww'} # 同时在集合s 和 s1 中的元素 print(s.intersection(s1)) print(s1&s)
- union()
求并集,也可以用|
。
s = set(('a', 'cc', 'f')) s1 = {'a', 'f', 1, 'ww'} # 元素在集合 s 中或在集合 s1 中 print(s.union(s1)) print(s1|s)
- sysmmetric_difference()
求对称差集,也可以用^
。
s = set(('a', 'cc', 'f')) s1 = {'a', 'f', 1, 'ww'} # 除集合s和集合s1共有的以外的元素 print(s.symmetric_difference(s1)) print(s1^s)
- issubset()
判断一个集合是否是另一个集合的子集.
s = set(('a', 'cc', 'f')) s1 = {'a', 'f'} print(s.issubset(s1)) print(s1.issubset(s))
- isuperset()
判断一个集合是否是另一个集合的父集.
s = set(('a', 'cc', 'f')) s1 = {'a', 'f'} print(s.issuperset(s1)) print(s1.issuperset(s)) # s1是s的子集,s是s1的父集 print(s1.issubset(s))
- isdisjoint()
检测2个集合是否不存在交集,如果存在交集,则返回False
s1 = {'ljl','wc','xy','zb','lsy'} s2 = {'mmf','lsy','syj'} s3 = {1, 2} print(s1.isdisjoint(s2)) print(s1.isdisjoint(s3))
- frozenset()
定义不可变集合
s = frozenset('a', 'b')
来源:https://www.cnblogs.com/kylinxxx/p/12524726.html