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

  • 相关阅读:
    poj 2391 Ombrophobic Bovines
    混合欧拉回路poj 1637 Sightseeing tour
    POJ1149-PIGS
    C
    B
    A
    C
    B
    A
    O
  • 原文地址:https://www.cnblogs.com/dsynb/p/9100734.html
Copyright © 2011-2022 走看看