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

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.

相关推荐
热点推荐
广东未来几天将被雨水“承包”

广东未来几天将被雨水“承包”

21世纪经济报道
2026-08-27 13:54:21
七夕刚过,被高调示爱、靠在李维嘉肩上的王菲,不再顾及所有体面

七夕刚过,被高调示爱、靠在李维嘉肩上的王菲,不再顾及所有体面

墨印斋
2026-08-25 10:58:31
国家一级女演员陈丽云被逮捕!

国家一级女演员陈丽云被逮捕!

许三岁
2026-03-28 09:24:30
江西省委副书记、省长叶建春任上被查

江西省委副书记、省长叶建春任上被查

澎湃新闻
2026-08-27 16:34:25
“新型养老”挺好:不用雇保姆,不用去养老院,也不用去麻烦子女

“新型养老”挺好:不用雇保姆,不用去养老院,也不用去麻烦子女

人间百态大全
2026-08-25 06:40:05
“长得不好看,真考不上!”老师劝退视频火了,说得已经很委婉了

“长得不好看,真考不上!”老师劝退视频火了,说得已经很委婉了

泽泽先生
2026-08-20 15:35:06
CCTV5直播调整!今夜11点,郑钦文vs普里丹金娜,获胜=美网正赛

CCTV5直播调整!今夜11点,郑钦文vs普里丹金娜,获胜=美网正赛

大秦壁虎白话体育
2026-08-27 09:06:25
马龙:本以为有2个儿子已经够幸福,没想到,现在幸福又升级了

马龙:本以为有2个儿子已经够幸福,没想到,现在幸福又升级了

寒士之言本尊
2026-08-26 13:56:55
突然才发现:凡是家里出学霸的家庭,爸爸都有同一个特点,太准了

突然才发现:凡是家里出学霸的家庭,爸爸都有同一个特点,太准了

户外阿毽
2026-08-13 00:24:11
皇马两颗钉子卡死穆帅,2.25亿砸进去却搬不动合同工,转会窗即将关死

皇马两颗钉子卡死穆帅,2.25亿砸进去却搬不动合同工,转会窗即将关死

静谧而安g
2026-08-26 07:46:12
1998年他们策划排华暴行,如今成为印尼当权者后,竟篡改历史否认

1998年他们策划排华暴行,如今成为印尼当权者后,竟篡改历史否认

阿胡
2025-07-07 09:57:51
英伟达RTX 3060 12GB复产后涨价45%,售价高于性能更强的RTX 5050

英伟达RTX 3060 12GB复产后涨价45%,售价高于性能更强的RTX 5050

IT之家
2026-08-26 20:26:31
号外!中国神秘战机终于曝光,美媒大跌眼镜

号外!中国神秘战机终于曝光,美媒大跌眼镜

武器纵论
2026-08-25 17:03:11
不打了!确认撕裂!2026年报销

不打了!确认撕裂!2026年报销

篮球教学论坛
2026-08-27 12:48:16
38岁"沪上皇"秦奋近况曝光:独自现身4s店买近40万电车,不如王思聪?

38岁"沪上皇"秦奋近况曝光:独自现身4s店买近40万电车,不如王思聪?

小徐讲八卦
2026-08-25 15:24:34
穆帅变招!23岁贝林厄姆升级了:2场1球2助 已是皇马领袖

穆帅变招!23岁贝林厄姆升级了:2场1球2助 已是皇马领袖

叶青足球世界
2026-08-27 15:49:47
杨超越在工厂打工时候的照片曝光!网友炸了:这妥妥的厂花啊!

杨超越在工厂打工时候的照片曝光!网友炸了:这妥妥的厂花啊!

黎兜兜
2026-08-25 22:25:21
李谷一不再隐瞒!揭露宋祖英走上高位的真相,难怪她丁克多年

李谷一不再隐瞒!揭露宋祖英走上高位的真相,难怪她丁克多年

遁走的两轮
2026-07-08 22:06:29
当着全世界翻脸?唇语破译特朗普三字狠话,梅拉尼娅甩头走人?

当着全世界翻脸?唇语破译特朗普三字狠话,梅拉尼娅甩头走人?

冷夜说
2026-08-26 08:44:41
宁波女子英国留学期间突发急症,医院延期手术,她果断回国,一出机场直奔医院,医生紧急手术将其从“鬼门关”拉回

宁波女子英国留学期间突发急症,医院延期手术,她果断回国,一出机场直奔医院,医生紧急手术将其从“鬼门关”拉回

环球网资讯
2026-08-27 14:35:11
2026-08-27 16:56:49
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2099文章数 86关注度
往期回顾 全部

科技要闻

苹果邀请函:新CEO、折叠屏iPhone都要来了

头条要闻

重磅打"虎" 江西省委副书记、省长叶建春被查

头条要闻

重磅打"虎" 江西省委副书记、省长叶建春被查

体育要闻

因为这条规则,欧联冠军一个夏天散伙了

娱乐要闻

包贝尔幽会后陪老婆!曾炫耀谈7个女友

财经要闻

英伟达,营收翻倍大增,指引碾压预期

汽车要闻

领克900:心之所向皆可抵达 | 潮汕篇

态度原创

健康
旅游
教育
房产
数码

突发脑梗怎么救命?一定看这两条路

旅游要闻

自如×马蜂窝联合发起“自如出发,下一站世界”,以“安居一间房”开启“奔赴全世界”的旅途新体验

教育要闻

成都家长问“专注力机构哪家好”?深耕本土近30年的丹秋学习力值得关注

房产要闻

落户江东!京东海南总部方案曝光!

数码要闻

JBL耳机Quantum 850 / 520 / 520X / 120上线,配备50mm单元

无障碍浏览 进入关怀版