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() 的结果更新原集合
原文地址:https://www.cnblogs.com/yorkyu/p/10290677.html