zoukankan      html  css  js  c++  java
  • python之集合set

    1.测试

     1 # python2和python3方法列表相同
     2 ops23 = ['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 
     3     'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 
     4     'symmetric_difference_update', 'union', 'update']
     5 
     6 for op in ops23:
     7     try:
     8         print('#'*10)
     9         S_abc = set('abc')
    10         S_cde = set('cde')
    11         print(op,eval('S_abc.{}(S_cde)'.format(op)))
    12         print('S_abc:',S_abc)
    13         print('S_cde:',S_cde)
    14     except Exception as why:
    15         print(op,why)

    2. 总结

    (1)元素操作

    S.add 添加hashable type,注意set为unhashable type

    S.pop随机删除并返回,remove删除指定元素可能报错,discard删除指定元素不会报错

    S.clear 清空

    S.copy 浅复制shallow copy

    (2)判断关系

    S.isdisjoint不相交 S.issubset子集 S.issuperset超集

    (3)集合操作

    命名方法 运算符语法 图例结果 对应update
    S.difference(S1) S-S1 A S -=S1
    S.intersection(S1) S&S1 B S &=S1
    S.symmetric_difference(S1) S^S1 A+C S ^=S1
    S.union(S1) S|S1 A+B+C S |=S1

    (a) S.xxx返回结果集合,S.xxx_update原地更新S,返回None,union对应方法为update而不是union_update

    (b)命名方法相比运算符语法,S1可以是由可哈希的项目组成的任意迭代

    >>> set('abc').union('cde')
    set(['a', 'c', 'b', 'e', 'd'])
    >>> set('abc').union(set('cde'))
    set(['a', 'c', 'b', 'e', 'd'])
    >>>

    3.输出分析

     1 ##########
     2 ('add', TypeError("unhashable type: 'set'",))
     3 ##########
     4 ('clear', TypeError('clear() takes no arguments (1 given)',))
     5 ##########
     6 ('copy', TypeError('copy() takes no arguments (1 given)',))
    Return a shallow copy of a set.
    In [45]: S_abc.copy() == S_abc
    Out[45]: True

    In [46]: S_abc.copy() is S_abc
    Out[46]: False

    7 ########## 8 ('difference', set(['a', 'b'])) 9 ('S_abc:', set(['a', 'c', 'b'])) 10 ('S_cde:', set(['c', 'e', 'd'])) 11 ########## 12 ('difference_update', None) 13 ('S_abc:', set(['a', 'b'])) #更新S1,留不同 14 ('S_cde:', set(['c', 'e', 'd']))

    15 ########## 16 ('discard', None) 17 ('S_abc:', set(['a', 'c', 'b'])) 18 ('S_cde:', set(['c', 'e', 'd']))

    19 ########## 20 ('intersection', set(['c'])) 21 ('S_abc:', set(['a', 'c', 'b'])) 22 ('S_cde:', set(['c', 'e', 'd'])) 23 ########## 24 ('intersection_update', None) 25 ('S_abc:', set(['c'])) #更新S1,留交集 26 ('S_cde:', set(['c', 'e', 'd']))


    27 ########## 28 ('isdisjoint', False) 29 ('S_abc:', set(['a', 'c', 'b'])) 30 ('S_cde:', set(['c', 'e', 'd']))
    Return True if two sets have a null intersection.
    31 ########## 32 ('issubset', False) 33 ('S_abc:', set(['a', 'c', 'b'])) 34 ('S_cde:', set(['c', 'e', 'd'])) 35 ########## 36 ('issuperset', False) 37 ('S_abc:', set(['a', 'c', 'b'])) 38 ('S_cde:', set(['c', 'e', 'd']))


    39 ########## 40 ('pop', TypeError('pop() takes no arguments (1 given)',))
    Remove and return an arbitrary set element.随机返回
    41 ########## 42 ('remove', KeyError(set(['c', 'e', 'd']),)) 43 ##########


    44 ('symmetric_difference', set(['a', 'b', 'e', 'd'])) 45 ('S_abc:', set(['a', 'c', 'b'])) 46 ('S_cde:', set(['c', 'e', 'd'])) 47 ########## 48 ('symmetric_difference_update', None) 49 ('S_abc:', set(['a', 'b', 'e', 'd'])) #更新S1,所有异或 01 10 50 ('S_cde:', set(['c', 'e', 'd']))

    51 ########## 52 ('union', set(['a', 'c', 'b', 'e', 'd'])) #并 53 ('S_abc:', set(['a', 'c', 'b'])) 54 ('S_cde:', set(['c', 'e', 'd'])) 55 ########## 56 ('update', None) #更新S1为全集 57 ('S_abc:', set(['a', 'c', 'b', 'e', 'd'])) 58 ('S_cde:', set(['c', 'e', 'd']))
  • 相关阅读:
    JQuery选择器
    锋利的jQuery事件
    gitlab
    mac 启动台图标大小调整
    Mac显示和隐藏文件夹
    vs Code 本地服务器配置
    js获取url后带的参数
    路由守卫
    calc()
    Git 本地仓库与远程仓库链接
  • 原文地址:https://www.cnblogs.com/my8100/p/7068944.html
Copyright © 2011-2022 走看看