python 集合笔记

本文介绍了Python集合的基本操作,包括创建、添加元素、删除元素的方法,以及集合的交集、并集、差集等操作,是学习Python集合的好资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合set

集合   无序的 不重复元素

常用来去除重复的元素

创建集合

>>> a=set()

>>> type(a)

<class 'set'>

>>> a={1,2,3}

>>> type(a)

<class 'set'>

 in 和 not in

in 和 not in 是成员运算符,对于列表,元组,字典,集合,判断一个数据是否在这些容器类型数据中,都可以使用成员运算符

my_set = {'python', 32, 983.9, 'python', 'php'}

print('php' in my_set)

添加元素

 a.add(6)

>>> a

{1, 2, 3, 6}

a.update((9,8,6))

>>> a

{1, 2, 3, 6, 8, 9}

删除元素

remove(元素),元素不在会报错

Discard(元素),元素不在不会报错

Pop(不给参数)随机移除元素

Del 集合名 删除集合

a.remove(5)

Traceback (most recent call last):

  File "<pyshell#18>", line 1, in <module>

    a.remove(5)

KeyError: 5

>>> a.remove(2)

>>> a

{1, 3, 6, 8, 9}

>>> a.discard(5)

>>> a

{1, 3, 6, 8, 9}

>>> b={9,5,4,6,'pp'}

>>> b.pop()

4

>>> b.pop()

5

>>> b.pop()

6

>>> b.pop()

'pp'

方法

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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值