这篇主要记录学习集合的心得。
一、概念
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
parame = {value01,value02,...} #方法1 set(value) #方法2
集合去重
>>> name1=[1,3,4,5,6,72,4,] >>> name1=set(name1) >>> print(name1) {1, 3, 4, 5, 6, 72}er
二、集合运算
1、交集(intersection())或者(&)
>>> name2=[3,4,5,6,7,3,6] >>> name2=set(name2) >>> name1.intersection(name2) {3, 4, 5, 6} >>> name1&name2 {3, 4, 5, 6}
2 、并集(union())或者(|)
>>> name1.union(name2) {1, 3, 4, 5, 6, 7, 72} >>> name1|name2 {1, 3, 4, 5, 6, 7, 72}
3、差集(difference())或者(-)
>>> name1.difference(name2) {72, 1} >>> name1-name2 {72, 1}
4 、对称差集(symmetric_difference())或者(^)
>>> name1.symmetric_difference(name2) {1, 7, 72} >>> name1^name2 {1, 7, 72}
5、是否是子集issubset()或者(<=)
>>> name1.issubset(name2) False >>> name1<=name2 False
6、是否是父集n或者(>=)
>>> name1.issuperset(name2) False >>> name1>=name2 False
7、sdisjoint()
判断两个集合是否有交集,没有交集,则返回True
>>> name3=[3,6] >>> name3=set(name3) >>> name2.isdisjoint(name3) False >>> name3.isdisjoint(name2) False >>> name4=[100] >>> name4=set(name4) >>> name1.isdisjoint(name4) True
三、基本操作
1、添加(add())
>>> name4=[100] >>> name4=set(name4) >>> name4.add(100)#添加已存在,不报错 >>> name4 {100} >>> name4.add(99) #添加不存在,添加一个新的数值 >>> name4 {99, 100}
2、添加多项(update())
>>> name4.update([98,97,95]) >>> name4 {97, 98, 99, 100, 95}
3、删除(remove(),pop(),discard())
3.1 remove()
用remove删除时,当元素不存在,会报错
>>> name4.remove(100) ##删除不存在的元素,会报错 >>> name4 {97, 98, 99, 95} >>> name4.remove(55) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 55
3.2 pop()
pop是随机删除集合中的某个元素,并且打印
>>> name4.pop() 97
3.3 discard()
用discard删除不存在的元素,不会出现报错
>>> name4 {97, 98, 99, 100, 95} >>> name4.discard(9) >>> name4.discard(99)
4、长度(len())
>>> name4 {98, 95} >>> len(name4) 2
5、x in s和x not in s
x in s 测试 x 是否是 s 的成员
>>> name4 {98, 95} >>> 100 in name4 #测试 x 是否是 s 的成员 False >>> 98 in name4 True
x not in s:测试 x 是否不是 s 的成员
>>> 99 not in name4 True >>> 98 not in name4 False