python集合方法讲解

方法

描述

add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()在原集合上移除两个集合都存在的元素
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()在原集合上移除与其他集合不重复的元素
isdisjoint()判断交集是否为空
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素

1. add()

add方法向集合中添加元素,即便该元素已经存在于集合中也能向里添加

my_set = set()
my_set.add(1)
my_set.add(1)
my_set.add(2)
print(my_set) # {1, 2}

2. clear()

clear方法清空集合

my_set = set()
my_set.add(1)
my_set.add(2)
print(my_set) # {1, 2}
my_set.clear()
print(my_set) # set() 空集合

3. copy()

拷贝一个集合

my_set = set()
my_set.add(1)
my_set.add(2)
print(my_set) # {1, 2}
my_set_2 = my_set.copy()
print(my_set_2) # {1, 2}

4. difference()

返回集合的差集

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.difference(s2)) # {1}
print(s2.difference(s1)) # {4}

5. difference_update()

在原集合上移除两个集合都存在的元素,方法没有返回值,下面示例中,s1里的元素被改变了

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.difference_update(s2)
print(s1) # {1}

6. discard()

删除集合中的指定元素

s1 = {1, 2, 3}
s1.discard(1)
print(s1) # {2, 3}

7. intersection()

返回集合的交集,集合可以是多个

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = {3, 4, 5}
print(s1.intersection(s2)) # {2, 3}
print(s1.intersection(s2, s3)) # {3}

8. intersection_update()

在原集合上移除与其他集合不重复的元素,其实就是在求交集,intersection也是计算交集,但不改变参与计算的集合内容,而intersection_update会改变原集合的内容。

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = {3, 4, 5}
s1.intersection_update(s2)
print(s1) # {2, 3}

9. isdisjoint()

判断交集是否为空

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.isdisjoint(s2))

10. issubset()

判断指定集合是否为该方法参数集合的子集。

s1 = {1, 2, 3}
s2 = {1, 2, 3, 4}
print(s1.issubset(s2)) # 判断s1是s2的子集

11. issuperset()

也是判断是否为自己,只是与issubset判断方向相反

s1 = {1, 2, 3}
s2 = {1, 2, 3, 4}
print(s2.issuperset(s1)) # 判断s1是s2的子集

12. pop()

随机的移除一个元素,但在实践中,又与该说法相矛盾

s1 = {8, 1, 2, 3, 4, 5, 6, 7}
s1.pop()
print(s1)
上述代码,每次执行都是删除1

13. remove()

移除指定元素

s1 = {8, 1, 2, 3, 4, 5, 6, 7}
s1.remove(4)
print(s1)

14. symmetric_difference()

返回两个集合中不重复的元素集合

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.symmetric_difference(s2)) # {1, 4}

15. symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.symmetric_difference_update(s2)
print(s1)
s1最终的结果等于s1.symmetric_difference(s2)的返回值

16. union()

返回两个集合的并集

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1.union(s2)) # {1, 2, 3, 4}

17. update()

将另一个集合更新到原集合中,给集合添加元素

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1.update(s2)
print(s1) # {1, 2, 3, 4}