集合的‘魔法’方法

  • add():添加
1 s={1,2,3,4,5,6}
2 s.add('aws')
3 print(s)
4 #结果:{1, 2, 3, 4, 5, 6, 'aws'}
  • update():更新(原集合被覆盖)
 1 s1={1,2}
 2 s2={1,2,3,4,5,6}
 3 s1.update(s2)
 4 print(s1)
 5 #结果:{1, 2, 3, 4, 5, 6}
 6 
 7 
 8 #ps:
 9 # s1.update(s2) #更新多个值
10 # s1.add(1,2,3,4) #更新一个值
11 # s1.union(s2) #不更新
  • clear():清除
1 s={1,2,3,4,5,6}
2 s.clear()
3 print(s)
4 #结果:set()
  • copy():拷贝
1 s={1,2,3,4,5,6}
2 s1=s.copy()
3 print(s1)
4 #结果:{1, 2, 3, 4, 5, 6}
  • pop():随机删
1 s={'sb',1,2,3,4,5,6}
2 s.pop()
3 print(s)
4 #结果:{2, 3, 4, 5, 6, 'sb'}
  • remove():指定删(删除元素不存在会报错)
  • discard():指定删(删除元素不存在不会报错)
 1 s={'sb',1,2,3,4,5,6}
 2 s.remove('sb')
 3 print(s)
 4 #结果:{2, 3, 4, 1, 5, 6}
 5 s={'sb',1,2,3,4,5,6}
 6 s.remove('hellol')
 7 print(s)
 8 #结果:
 9 '''Traceback (most recent call last):
10   File "F:pycharmPyCharm 2017.3.3helperspydevpydev_run_in_console.py", line 53, in run_file
11     pydev_imports.execfile(file, globals, locals)  # execute the script
12   File "F:pycharmPyCharm 2017.3.3helperspydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
13     exec(compile(contents+"
", file, 'exec'), glob, loc)
14   File "F:/pycharm/pycharm_file/test.py", line 181, in <module>
15     s.remove('hellol')
16 KeyError: 'hellol'
17 '''
1 s={'sb',1,2,3,4,5,6}
2 s.discard('sbbbb')
3 print(s)
4 #结果:{1, 2, 3, 4, 5, 6, 'sb'}  不会报错
  • 交集
1 c_1 = {'老张','老王','老李','sb'}
2 c_2 = {'老王','sb','me'}
3 print(c_1.intersection(c_2))
4 print(c_1&c_2)
5 #结果:{'老王', 'sb'}
6 #    {'老王', 'sb'}
  • 并集
1 c_1 = {'老张','老王','老李','sb'}
2 c_2 = {'老王','sb','me'}
3 print(c_1.union(c_2))
4 print(c_1|c_2)
5 #结果:{'老张', '老李', '老王', 'sb', 'me'}
6 #    {'老张', '老李', '老王', 'sb', 'me'}
  • 差集
 1 c_1 = {'老张','老王','老李','sb'}
 2 c_2 = {'老王','sb','me'}
 3 print('c_1特有的',c_1-c_2)
 4 print(c_1.difference(c_2))
 5 #结果:c_1特有的 {'老李', '老张'}
 6 #    {'老李', '老张'}
 7 c_1 = {'老张','老王','老李','sb'}
 8 c_2 = {'老王','sb','me'}
 9 print('c_2特有的',c_2-c_1)
10 print(c_2.difference(c_1))
11 #结果:c_2特有的 {'me'}
12 #    {'me'}
  • 差集更新(原集合被覆盖)
1 c_1 = {'老张','老王','老李','sb'}
2 c_2 = {'老王','sb','me'}
3 c_1.difference_update(c_2)
4 print(c_1)
5 #结果:{'老李', '老张'}
  • 交叉补集(两者交集的补集)
1 c_1 = {'老张','老王','老李','sb'}
2 c_2 = {'老王','sb','me'}
3 print('交叉补集',c_1.symmetric_difference(c_2))
4 print('交叉补集',c_1^c_2)
5 #结果:交叉补集 {'老李', 'me', '老张'}
6 #    交叉补集 {'老李', 'me', '老张'}
  • 判断子集
1 s1={1,2}
2 s2={1,2,3}
3 print(s1.issubset(s2))#s1是s2 的子集
4 #结果:True
5 print(s2.issubset(s1))#False
6 #结果:False
  • 判断父集
1 s1={1,2}
2 s2={1,2,3}
3 print(s2.issuperset(s1))#s1是s2的父集
4 #结果:True
  • frozenset():建立一个不可变集合
1 s=frozenset('hello')
2 print(s)
3 #结果:frozenset({'o', 'l', 'e', 'h'})

此时该集合失去了add,remove,pop等方法

原文地址:https://www.cnblogs.com/dsynb/p/9100734.html