zoukankan      html  css  js  c++  java
  • 集合的‘魔法’方法

    • 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等方法

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/dsynb/p/9100734.html
Copyright © 2011-2022 走看看