网易首页 > 网易号 > 正文 申请入驻

Python:集合方法手册

0
分享至

集合(set)是 Python 中的可变无序、无重复元素的数据容器。它常用于去重、集合运算(交并差对称差)等。

一、增、删、改元素

add(x)

用于向集合添加一个元素。若元素已存在,则不变。

参数:

x:要添加的元素,必须可哈希(如数字、字符串、元组)。

返回值:无,直接修改原集合。

示例:

s = {1, 2}
s.add(3)
print(s)   # {1, 2, 3}

s.add(2)
print(s)   # {1, 2, 3},不会重复添加

update(iterable)

用于批量添加多个元素。

参数:

iterable:可迭代对象(如列表、集合、字符串等)。

返回值:无,直接修改原集合。

示例:

s = {1, 2}
s.update([2, 3, 4])
print(s)   # {1, 2, 3, 4}

注意:

在集合运算语境中,update() 也表示“并集更新”,等价于 |=。

remove(x)

用于删除指定元素。若不存在,抛出 KeyError。

参数:

x:要删除的元素。

返回值:无,直接修改原集合。

示例:

s = {1, 2, 3}
s.remove(2)
print(s)   # {1, 3}

# s.remove(9)   # ❌ KeyError

discard(x)

用于删除指定元素。若不存在,也不会报错。

参数:

x:要删除的元素。

返回值:无,直接修改原集合。

示例:

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

s.discard(9)  # 不报错
print(s)      # {1, 3}

pop()

随机删除并返回一个元素。集合无序,因此不能指定索引。

参数:无。

返回值:被删除的元素。若集合为空,抛出 KeyError。

示例:

s = {10, 20, 30}
print(s.pop())   # 随机删除并返回一个元素(不可预测)
print(s)         # 剩余集合

clear()

用于清空集合所有元素。

参数:无。

返回值:无,直接修改原集合。

示例:

s = {1, 2, 3}
s.clear()
print(s)   # set()

二、集合运算方法

union(*others) 或 |

返回集合的并集。

参数:

*others:一个或多个集合/可迭代对象。

返回值:新集合(不会修改原集合)。

示例:

a = {1, 2}
b = {2, 3}
print(a.union(b))   # {1, 2, 3}
print(a | b)        # {1, 2, 3}

intersection(*others) 或 &

返回集合的交集。

参数:

*others:一个或多个集合/可迭代对象。

返回值:新集合。

示例:

a = {1, 2, 3}
b = {2, 3, 4}
print(a.intersection(b))   # {2, 3}
print(a & b)               # {2, 3}

difference(*others) 或 -

返回差集(存在于自身但不在对方集合中的元素)。

参数:

*others:一个或多个集合/可迭代对象。

返回值:新集合。

示例:

a = {1, 2, 3}
b = {2, 3, 4}
print(a.difference(b))   # {1}
print(a - b)             # {1}

symmetric_difference(other) 或 ^

返回对称差集(在一个集合中但不同时出现在两个集合的元素)。

参数:

other:另一个集合/可迭代对象。

返回值:新集合。

示例:

a = {1, 2, 3}
b = {2, 3, 4}
print(a.symmetric_difference(b))   # {1, 4}
print(a ^ b)                       # {1, 4}

原地更新方法

集合还提供了“原地修改”版本:

update():并集更新,相当于 |=

intersection_update():交集更新,相当于 &=

difference_update():差集更新,相当于 -=

symmetric_difference_update():对称差集更新,相当于 ^=

示例:

a = {1, 2, 3}
b = {2, 3, 4}

a.intersection_update(b)
print(a)   # {2, 3}

三、关系测试方法

issubset(other) 或 <=

用于判断当前集合是否是 other 的子集。

参数:

other:另一个集合/可迭代对象。

返回值:布尔值。

示例:

a = {1, 2}
b = {1, 2, 3}
print(a.issubset(b))   # True
print(a <= b)          # True

issuperset(other) 或 >=

用于判断当前集合是否是 other 的超集。

参数:

other:另一个集合/可迭代对象。

返回值:布尔值。

示例:

a = {1, 2, 3}
b = {1, 2}
print(a.issuperset(b))   # True
print(a >= b)            # True

isdisjoint(other)

用于判断两个集合是否无交集。

参数:

other:另一个集合/可迭代对象。

返回值:布尔值。

示例:

a = {1, 2}
b = {3, 4}
print(a.isdisjoint(b))   # True

四、复制与拷贝

copy()

返回集合的浅拷贝。

参数:无。

返回值:新集合对象。

示例:

s1 = {1, 2, 3}
s2 = s1.copy()
print(s2)   # {1, 2, 3}
print(s1 is s2)   # False,不同对象

集合很少需要深拷贝,因为元素必须是不可变对象。但若集合中包含自定义可变对象,建议使用深拷贝 来避免引用共享。

五、与集合常搭配的内置函数

len(s):返回集合大小。

max(s) / min(s):返回最大/最小值。

sum(s):对数值型集合求和。

:返回排序后的列表(不会修改原集合)。

示例:

s = {5, 1, 9, 2}

print(len(s))     # 4
print(max(s))     # 9
print(min(s))     # 1
print(sum(s))     # 17
print(sorted(s))  # [1, 2, 5, 9]

小结

集合(set)是可变、无序、不重复的数据容器。

元素操作:add()、update()、remove()、discard()、pop()、clear()

集合运算:并集、交集、差集、对称差集(及其原地版本)

关系测试:issubset()、issuperset()、isdisjoint()

复制:copy()

常配合函数:len()、sum()、max()、min()、sorted()

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
健在资历最老的海军司令员是谁?他快100岁了

健在资历最老的海军司令员是谁?他快100岁了

文史茶馆2020
2026-02-22 17:11:46
我国5600余个姓氏中只有8个姓氏从未衰落,看一下有你的姓氏吗?

我国5600余个姓氏中只有8个姓氏从未衰落,看一下有你的姓氏吗?

铭记历史呀
2026-01-07 02:22:59
细菌超 500 亿个!很多人舍不得换的洗碗工具,真的该扔了

细菌超 500 亿个!很多人舍不得换的洗碗工具,真的该扔了

科普中国
2026-02-21 23:26:53
以总理:若遭伊朗袭击 将以其无法想象的力度回击

以总理:若遭伊朗袭击 将以其无法想象的力度回击

财联社
2026-02-24 00:10:07
重磅消息!美方释放重磅信号:普京、特朗普与泽连斯基将面谈

重磅消息!美方释放重磅信号:普京、特朗普与泽连斯基将面谈

基斯默默
2026-02-23 22:03:36
“性萧条”才是这个时代真正的危机

“性萧条”才是这个时代真正的危机

深蓝夜读
2025-09-24 16:00:09
众议院投票218票对213票通过

众议院投票218票对213票通过

林子说事
2026-02-23 18:45:40
陕西多地突降暴雪,高速路段通行缓慢,有车主称从汉中到西安花了7个小时,董宇辉发文:不是不回北京上班,你看西安这大雪

陕西多地突降暴雪,高速路段通行缓慢,有车主称从汉中到西安花了7个小时,董宇辉发文:不是不回北京上班,你看西安这大雪

极目新闻
2026-02-23 18:57:24
欧冠种族歧视事件后 巴西加速推进"维尼修斯法案"

欧冠种族歧视事件后 巴西加速推进"维尼修斯法案"

星耀国际足坛
2026-02-24 00:01:07
票房井喷!可《镖人》这片,也给吴京留下了一个最大的“遗憾”

票房井喷!可《镖人》这片,也给吴京留下了一个最大的“遗憾”

查尔菲的笔记
2026-02-23 21:03:20
2026年最值得关注的MPV,华为智界V9春季完成上市

2026年最值得关注的MPV,华为智界V9春季完成上市

隔壁说车老王
2026-02-24 00:05:00
残阵勇士3人20+爆冷击溃掘金 约基奇35+20+12第185次三双

残阵勇士3人20+爆冷击溃掘金 约基奇35+20+12第185次三双

醉卧浮生
2026-02-23 07:10:24
吴彦祖稍微倒腾一下,还是一骑绝尘。如果他再植发,还要年轻20岁

吴彦祖稍微倒腾一下,还是一骑绝尘。如果他再植发,还要年轻20岁

付老师种植技术团队
2026-01-04 15:30:22
谷爱凌惹谁了,那么多知识分子不喜欢她

谷爱凌惹谁了,那么多知识分子不喜欢她

冰川思想库
2026-02-23 18:29:54
五台山景区大火持续达7小时:官方回应伤亡情况,一画面信息量大

五台山景区大火持续达7小时:官方回应伤亡情况,一画面信息量大

博士观察
2026-02-22 16:44:15
这个国家快被中国买下了?美女如云,10个移民中就有9个中国人!

这个国家快被中国买下了?美女如云,10个移民中就有9个中国人!

云景侃记
2026-02-22 16:25:24
何穗陈伟霆留在北京过年,晒出别墅内景,满屋蝴蝶兰太有年味了

何穗陈伟霆留在北京过年,晒出别墅内景,满屋蝴蝶兰太有年味了

喜欢历史的阿繁
2026-02-24 00:10:36
五台山大火:官方披露伤亡情况,大量内幕披露,一画面信息量大

五台山大火:官方披露伤亡情况,大量内幕披露,一画面信息量大

博士观察
2026-02-23 11:23:20
不打伊朗了?特朗普锁定新目标,英国斩钉截铁,不许美军使用基地

不打伊朗了?特朗普锁定新目标,英国斩钉截铁,不许美军使用基地

梁讯
2026-02-22 22:04:07
深度揭秘 | 二号首长沉浮录:徐守盛“大秘”王华平,一句招呼值千万

深度揭秘 | 二号首长沉浮录:徐守盛“大秘”王华平,一句招呼值千万

一分为三看人生
2026-02-24 00:07:10
2026-02-24 00:39:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1762文章数 78关注度
往期回顾 全部

科技要闻

智谱、MiniMax合计蒸发近千亿市值,为何?

头条要闻

特朗普2年遭4次刺杀威胁 持枪闯海湖庄园男子身份确认

头条要闻

特朗普2年遭4次刺杀威胁 持枪闯海湖庄园男子身份确认

体育要闻

哈登版骑士首败:雷霆的冠军课

娱乐要闻

那艺娜账号被禁止关注,视频已清空!

财经要闻

美国海关将停止征收被裁定违法的关税

汽车要闻

续航1810km!smart精灵#6 EHD超级电混2026年上市

态度原创

本地
时尚
教育
健康
公开课

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

今年春天一定要拥有的针织,这样穿减龄又好看!

教育要闻

现在的家长只敢举报老师,学校违规办学他们屁都不敢吭一声!

转头就晕的耳石症,能开车上班吗?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版