zoukankan      html  css  js  c++  java
  • 014 集合的内置方法

    查看

    • dir(set): 列出 set 的方法
    • help(set): 查看开发者对 set 方法所编写的详细描述文档
      • help(set.add) 可以仅查看 add() 的用法

    add()

    • 释义
      • 向集合中添加一个元素
      • 若元素已经存在,则此操作无效
    >>> s = {1}
    >>> s.add(2)
    >>> s
    {1, 2}
    >>> 
    >>> s.add(3, 4)
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        s.add(3, 4)
    TypeError: add() takes exactly one argument (2 given)
    >>> 
    
    • 想要一次加入多个元素请看 update()
    >>> s = {1, 2, 3}
    >>> s.add(3)
    >>> s
    {1, 2, 3}
    >>> 
    

    clear()

    • 释义:删除集合中所有的元素
    >>> s = {1, 2, 3}
    >>> s.clear()
    >>> s
    set()
    >>> 
    

    copy()

    • 释义:返回集合的浅拷贝
    >>> s1 = {1, 2, 3}
    >>> s2 = s1.copy()
    >>> id(s1)
    1904343128320
    >>> id(s2)
    1904343128544
    

    difference()

    • 释义
      • 将两个或多个集合的差异作为新集合返回
      • A.difference(B) 返回 A 中不同于 B 的元素
    >>> s1 = {1, 2, 3}
    >>> s2 = {0, 1, 2, 3, 4}
    >>> s3 = {6, 7, 8, 9}
    >>> s4 = {2}
    >>> s5 = {3, 4}
    >>> s1.difference(s2)
    set()
    >>> s1.difference(s3)
    {1, 2, 3}
    >>> s1.difference(s4)
    {1, 3}
    >>> s1.difference(s5)
    {1, 2}
    >>> 
    
    • 从结果看
      • 若 A 是 B 的子集,则 A.difference(B) 输出 set()
      • 若 A 与 B 没有交集,则 A.difference(B) 输出 A 本身
      • ...
      • 当作概率论中的古典概型即可

    difference_update()

    • 释义:从此集合中移除所有与其他集合重复的元素
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.difference_update(s2)
    >>> s1
    {'YorkFish'}
    >>> 
    

    ps

    • difference() 是返回值
    • difference_update() 是用 difference() 的结果更新原集合

    discard()

    • 释义
      • 如果元素是集合的成员,则将其从集合中移除
      • 如果元素不是集合的成员,则不执行任何操作
    >>> s = {1, 2, 3, 4, 5}
    >>> s.discard(1)
    >>> s
    {2, 3, 4, 5}
    >>> s.discard(6)
    >>> s
    {2, 3, 4, 5}
    >>> 
    

    intersection()

    • 释义:将两个集合的交集作为新集合返回
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.intersection(s2)
    {'Johnny Lee', 'Amy Green'}
    >>> 
    

    intersection_update()

    • 释义:用自身和另一个集合的交集更新集合
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.intersection_update(s2)
    >>> s1
    {'Johnny Lee', 'Amy Green'}
    >>> 
    

    ps

    • intersection() 是返回值
    • intersection_update() 是用 intersection() 的结果更新原集合

    isdisjoint()

    • 释义:如果两个集合没有交集,返回 True,否则,返回 False
    >>> s1 = {"YorkFish"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.isdisjoint(s2)
    True
    >>> 
    

    issubset()

    • 释义:A.issubset(B) 时,如果集合 A 是集合 B 的子集,返回 True,否则,返回 False
    >>> s1 = {"Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.issubset(s2)
    True
    >>> 
    

    issuperset()

    • 释义
      • issubset() 相反
      • A.issuperset(B) 时,如果集合 A 是集合 B 的超集,返回 True,否则,返回 False
    >>> s1 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s2 = {"Amy Green", "Johnny Lee"}
    >>> s1.issuperset(s2)
    True
    >>> 
    

    pop()

    • 释义
      • 删除并且返回集合中的一个元素
      • 与列表不同,集合的 pop() 从某种程度上说是随机的
    >>> s = {1, 2, 3, 4, 5}
    >>> s.pop()
    1
    >>> s
    {2, 3, 4, 5}
    >>> 
    

    remove()

    • 释义
      • 从集合中删除指定元素,前提是它必须是该集合的成员
      • 如果需要删除的元素不是该集合的成员,会抛出异常 keyError
    >>> s = {1, 2, 3, 4, 5}
    >>> s.remove(3)
    >>> s
    {1, 2, 4, 5}
    >>> 
    

    symmetric_difference()

    • 释义
      • 将两个集合的“对等差分”作为新集合返回
      • 对等差分:不重复部分
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.symmetric_difference(s2)
    {'YorkFish', 'Tony black'}
    >>> 
    

    symmetric_difference_update()

    • 释义:使用自身和另一个集合的“对等差分”更新集合
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.symmetric_difference_update(s2)
    >>> s1
    {'Tony black', 'YorkFish'}
    >>> 
    

    ps

    • symmetric_difference() 是返回值
    • symmetric_difference_update() 是用 symmetric_difference() 的结果更新原集合

    union()

    • 释义:将集合的并集作为新的集合返回
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.union(s2)
    {'Tony black', 'Johnny Lee', 'Amy Green', 'YorkFish'}
    >>> 
    

    update()

    • 释义:使用自身和其他集合的并集更新集合
    >>> s1 = {"YorkFish", "Amy Green", "Johnny Lee"}
    >>> s2 = {"Amy Green", "Johnny Lee", "Tony black"}
    >>> s1.update(s2)
    >>> s1
    {'Tony black', 'Johnny Lee', 'Amy Green', 'YorkFish'}
    >>> 
    

    ps

    • union() 是返回值
    • update() 是用 union() 的结果更新原集合
  • 相关阅读:
    洛谷 P1725 琪露诺 题解
    洛谷 P1714 切蛋糕 题解
    洛谷 P1352 没有上司的舞会 题解
    洛谷 P1194 买礼物 题解
    洛谷 P2872 [USACO07DEC]道路建设Building Roads 题解
    OpenCV之头文件分析
    电路学习之二极管(一)
    二极管学习(一)
    STL之vetor 排序
    小波分析(二)
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10290677.html
Copyright © 2011-2022 走看看