Python set 拾遗

来源:互联网 发布:vs能写php 编辑:程序博客网 时间:2024/06/06 03:24
  • 初始化
s = set('abc') # {'a', 'b', 'c'}print(s)s = set(['a', 'b', 'c']) # {'a', 'b', 'c'}print(s)
  • add()添加
s = set(['a', 'b', 'c'])print(s)s.add('e')print(s) # {'a', 'e', 'c', 'b'}
  • clear()清除
  • discard()删除
  • remove删除(当要删除的元素不存在时,抛出异常)
  • pop() 随机删除一个元素(当集合为空时,抛出异常)
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s.discard('e')           # {'b', 'a', 'c'}print(s)s.discard('a')           # {'b', 'c'}print(s)s.remove('b')           # {'c'}print(s)s.remove('e')           # raise KeyError: 'e's.clear()  # set()print(s)s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)print(s.pop())            # 随机print(s)s.pop()s.pop()print(s)                  # set()s.pop()                   # KeyError: 'pop from an empty set'
  • copy()复制
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = s.copy()  # {'c', 'b', 'a'}print(s2)
  • difference()差
  • difference_update()用差更新集合
  • symmetric_difference() 对称差
  • symmetric_difference_update() 用对称差更新(只剩除了交集的了)
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)print(s2.difference(s))   # {'e', 'f'}print(s.difference(s2))   # {'a'}s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)s.difference_update(s2)   # {'a'}print(s)s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2.difference_update(s)  # {'e', 'f'}print(s2)s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)print(s.symmetric_difference(s2))   # {'e', 'f', 'a'}s.symmetric_difference_update(s2)   # {'e', 'f', 'a'}print(s)
  • intersection()交集
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)print(s.intersection(s2)) # {'b', 'c'}print(s2.intersection(s)) # {'b', 'c'}print(s)                  # {'c', 'b', 'a'}print(s2)                 # {'c', 'f', 'b', 'e'}s.intersection_update(s2) print(s)                  # {'c', 'b'}
  • isdisjoint()判断是否相交
  • issubset() 判断是否是子集
  • issuperset() 判断是否是父集
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)s3 = set('gh')          # {'g', 'h'}print(s3)print(s.isdisjoint(s2)) # Falseprint(s.isdisjoint(s3)) # Trues4 = set('abcd')          # {'b', 'c', 'd', 'a'}print(s4)print(s.issubset(s2))     # Falseprint(s.issubset(s4))     # Trueprint(s.issuperset(s4))     # Falseprint(s4.issuperset(s))   # True
  • union() 并集
  • update() 用并集更新
s = set(['a', 'b', 'c'])  # {'b', 'a', 'c'}print(s)s2 = set('bcef')          # {'b', 'e', 'c', 'f'}print(s2)print(s.union(s2))        # {'c', 'a', 'f', 'b', 'e'}s.update(s2)              # {'c', 'a', 'f', 'b', 'e'}print(s)
0 0