zoukankan      html  css  js  c++  java
  • python——集合内置函数

    集合内置方法

      集合的元素不能是列表、字典等可修改的元素;可以是数字、字符串、元组等可哈希的;集合是无序的。我们常用的都是可变集合。其实还有一种不可变集合(frozenset),只是我们很少用到。下面都说的是可变集合。

    1. add(...)

    Add an element to a set.
    添加一个元素到集合中。假如集合中已经有了该元素,则看不出效果;因为集合是去重的;
    例如:
        set1={1,2,3,4,5}
        set1.add(3)
        print(set1)         # 输出set1,为 {1,2,3,4,5}
    

    2. clear(...)

    Remove all elements from this set.
    清空集合的所有元素;
    例如:
        set1={1,2,3,4,5}
        set1.clear()
        print(set1)         # 输出set(), 表示集合set1被清空
    

    3. copy(...)

    Return a shallow copy of a set.
    复制一个集合;
    

    4. difference(...)

    Return the difference of two or more sets as a new set.
    求两个集合的差集;返回一个集合,集合中的元素为当前集合 减去 指定集合;数学表达式为 -,如 a-b
    例如:
        set1={1,2,3,4,5,('wjz','wjk')}
        set2={1,2,7,'wjk',('wjk','wjz')}
        print(set1.difference(set2))      # 返回 {3, 4, 5, ('wjz', 'wjk')}    说明,集合中的元组有顺序区分;
    

    5. difference_update(...)

    Remove all elements of another set from this set.
    difference方法是取差,但是不改变两个集合;difference_update方法是将差集合赋给原来的集合。
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk')}
        set2={1,2,7,'wjk',('wjk','wjz')}
        set1.difference_update(set2)
        print(set1)                      # 输出  {3, 4, 5, ('wjz', 'wjk')}    set2不变
    

    6. discard(...)

    Remove an element from a set if it is a member. If the element is not a member, do nothing.
    假如集合中有指定的元素,则从集合中移除该元素;如果没有,则不进行任何操作;
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set1.discard('www')
        print(set1)                     # 输出 {1,2,3,4,5,('wjz','wjk')}
    

    7. intersection(...)

    Return the intersection of two sets as a new set.
    求两个集合的交集;返回一个集合,该集合是两个集合的交集;数学表达式为 &,如 a & b
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk')}
        set2={1,2,7,'wjk',('wjk','wjz')}
        print(set1.intersection(set2))            #输出 {'wjk', 1, 2} 
    

    8. intersection_update(...)

    intersection方法是求两个集合的交集,但是不改变原来的两个集合;intersection_update方法是把交集赋给前面原来的集合;
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk')}
        set2={1,2,7,'wjk',('wjk','wjz')}
        set1.intersection_update(set2)
        print(set1)                             # set2不变;输出 {'wjk', 1, 2}    
    

    9. isdisjoint(...)

    Return True if two sets have a null intersection.
    如果两个集合交集为空,则返回True;否则返回False
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk')}
        set2={1,2,7,'wjk',('wjk','wjz')}
        set3={8,9}
        print(set1.isdisjoint(set2))          # 返回 False
        print(set1.isdisjoint(set3))          # 返回 True
    

    10. issubset(...)

    Report whether another set contains this set.
    判断该集合是否为指定集合的子集;是则返回True,否则返回False;
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk'),}
        set2={1,2}
        print(set2.issubset(set1))          # 返回 True
    

    11. issuperset(...)

    Report whether this set contains another set.
    判断该集合是否为指定集合的父集;是则返回True,否则返回False;
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk'),}
        set2={1,2}
        print(set1.issuperset(set2))          # 返回 True
    

    12. pop(...)

    Remove and return an arbitrary set element. Raises KeyError if the set is empty.
    从集合中删除一个元素,并返回该元素;不能指定参数,随机删除(因为集合是无序的); 假如指定了参数 或者 集合为空,则报异常;
    例如:
        set1={1,2,3,4,5,'wjk',('wjz','wjk')}
        print(set1.pop())                   # 返回 一个元素;我这里是返回的2   此时set1变为 {1, 3, 4, 5, ('wjz', 'wjk'), 'wjk'}  
    

    13. remove(...)

    Remove an element from a set; it must be a member.
    从集合中删除指定元素;假如集合中没有这个元素,则报异常;
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set1.remove('www')
        print(set1)               # 输出  {1, 2, 3, 4, 5, ('wjz', 'wjk')}
    

    14. symmetric_difference(...)

    返回一个集合,该集合为 两个集合互为差集的合集;数学表达式是 ^ 。如 a^b
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set2={1,2,7,'www',('wjk','wjz')}
        print(set1.symmetric_difference(set2))      # 输出 {3, 4, 5, ('wjz', 'wjk'), 7, ('wjk', 'wjz')} ; 即 (set1 - set2)+(set2 - set1)
    

    15. symmetricdifferenceupdate(...)

    返回一个集合,该集合为 两个集合互为差集的合集;并把该集合赋给前面的那个集合;
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set2={1,2,7,'www',('wjk','wjz')}
        set1.symmetric_difference_update(set2)
        print(set1)                          # 输出 {3, 4, 5, 7, ('wjz', 'wjk'), ('wjk', 'wjz')}    set2集合不变;
    

    16. union(...)

    求两个集合的并集;返回一个集合,该集合是两个集合的并集;数学表达式为 |,如 a|b
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set2={1,2,7,'www',('wjk','wjz')}
        print(set1.union(set2))             # 输出  {1, 2, 3, 4, 5, 7, ('wjk', 'wjz'), ('wjz', 'wjk'), 'www'}
    

    17. update(...)

    求两个集合的并集,返回一个集合,该集合是两个集合的并集;并把该集合赋给前面的集合;
    其实第二个可以是集合、字符串、列表、元组、字典等等
    例如:
        set1={1,2,3,4,5,'www',('wjz','wjk')}
        set2={1,2,7,'www',('wjk','wjz')}
        set1.update(set2)
        print(set1)                       # 输出 {1, 2, 3, 4, 5, 'www', 7, ('wjz', 'wjk'), ('wjk', 'wjz')}   set2不变
    
        set3={1,'www',5}
        print(set3.update('bashrunning'))  # 输出 {1,'www',5,'b','a','s','h','r','u','n',,'i','g'}    去重之后的。
    如需转载,请注明出处,否则本人会追究法律责任!
  • 相关阅读:
    遗传算法python实现
    lambda的一些用法
    Python遗传和进化算法框架(一)Geatpy快速入门
    电脑连接小爱同学音箱无法调节音量
    Shell脚本批量修改文件编码为UTF-8
    java实现 批量转换文件编码格式为UTF8
    POM添加规范
    SOFA框架跨包调用报错NoClassDefFoundError
    logger打印日志时加if (logger.isInfoEnabled())/if (logger.isDebugEnabled())
    对象,JSON,字符串,map之间的互转
  • 原文地址:https://www.cnblogs.com/hacker001/p/10081927.html
Copyright © 2011-2022 走看看