掘金 人工智能 19小时前
苦练Python第24天:玩转Set
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入浅出地介绍了Python中的Set(集合)数据结构,重点阐述了Set的创建方式、与列表(list)和元组(tuple)在有序性、可变性、重复元素及索引支持上的异同。文章详细讲解了Set的常用操作,如添加、删除、清空和复制元素,并演示了如何遍历Set。特别强调了Set在成员检测(in操作)上的超高效率,以及其在执行并集、交集、差集和对称差集等四大集合运算时的便捷性。通过实际场景示例,如列表去重、共同爱好检测和句子唯一词统计,展示了Set在解决实际问题中的强大应用价值。

🌟 Set是Python中一种无序、可变且不允许重复元素的集合数据结构,创建空集合必须使用`set()`,否则`{}`会创建空字典。Set的主要优势在于自动去重、极快的成员检测速度(`in`操作)以及便捷的数学集合运算。

🔧 Set提供了多种基础操作,包括使用`add()`方法添加元素,使用`remove()`(元素不存在时会报错)或`discard()`(元素不存在时不报错)删除元素,以及`clear()`清空集合和`copy()`复制集合。

🔀 Set支持四种重要的集合运算:并集(`|`或`union()`)、交集(`&`或`intersection()`)、差集(`-`或`difference()`)和对称差集(`^`或`symmetric_difference()`),这些操作能够高效地比较和合并集合。

📊 相较于list和tuple,Set在成员检测方面具有显著的速度优势,并且天然不支持重复元素和索引,这使得它在需要快速查找或确保数据唯一性的场景下非常有用。

🧪 Set在实际应用中用途广泛,例如可以快速将列表转换为Set以去除重复项,通过集合的交集找出两个集合的共同元素,或统计文本中的唯一词汇。

苦练Python第24天:玩转Set

前言

大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到《100天Python》第24天!今天我们来解锁一种独特且强大的数据结构:Set(集合)。当你需要去重、快速成员检测或执行并集、交集、差集等数学运算时,Set 就是你的瑞士军刀。让我们开始吧!🐍


📦 今日收获清单


🔹 1. Set 是什么?

Set 是一个无序可变无索引的集合,不允许重复元素

🔹 语法

my_set = {1, 2, 3}

空集合必须用 set()

empty_set = set()

⚠️ {} 创建的是空字典,不是空集合!


✅ 2. 为什么用 Set?


🔧 3. 基础操作

创建与添加

fruits = {"apple", "banana", "cherry"}fruits.add("orange")

删除元素

fruits.remove("banana")   # 不存在时报错fruits.discard("banana")  # 不存在不报错

清空与复制

fruits.clear()new_set = fruits.copy()

🔁 4. 遍历 Set

for fruit in fruits:    print(fruit)

注意:Set 无序,输出顺序不一定与插入一致。


🔀 5. 四大集合运算

假设:

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

🔸 并集 — 所有唯一元素

print(a | b)            # {1, 2, 3, 4, 5, 6}print(a.union(b))       # 同上

🔸 交集 — 公共元素

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

🔸 差集 — 只在 a 中的元素

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

🔸 对称差集 — 只在一边的元素

print(a ^ b)                      # {1, 2, 5, 6}print(a.symmetric_difference(b))

🔎 6. 成员测试

print(3 in a)   # Trueprint(10 in a)  # False

在 Set 中比 list 快得多!


⚠️ 7. Set 与其他集合对比

特性listtupleset
有序
可变
允许重复
支持索引
快速成员检测

🧪 实战示例

1. 列表去重

nums = [1, 2, 2, 3, 4, 4, 5]unique_nums = list(set(nums))print(unique_nums)  # [1, 2, 3, 4, 5]

2. 共同爱好检测

alice = {"reading", "coding", "travel"}bob   = {"coding", "gaming"}print(alice & bob)  # {'coding'}

3. 句子唯一词统计

sentence = "this is a test this is only a test"unique_words = set(sentence.split())print(unique_words)

🧠 今日速记

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python Set 数据结构 集合运算 去重
相关文章