⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Python 集合操作

学习 set 的交集、并集、差集 · 难度:入门 · +10XP

Python 集合操作

集合(Set)是 Python 中一种无序、不重复的数据结构。它基于数学中集合的概念,提供了高效的成员检测和去重功能。集合使用花括号 {}set() 构造函数创建。

集合的创建

# 使用花括号创建集合
fruits = {'apple', 'banana', 'orange', 'apple'}  # 重复的 apple 会被自动去除
print(fruits)  # {'apple', 'banana', 'orange'}

# 使用 set() 构造函数 numbers = set([1, 2, 3, 3, 4, 4, 5]) print(numbers) # {1, 2, 3, 4, 5}

# 创建空集合 (注意:不能使用 {},因为 {} 创建的是空字典) empty_set = set() print(type(empty_set)) # <class 'set'>

集合的基本操作

s = {1, 2, 3}

# 添加元素 s.add(4) # {1, 2, 3, 4}

# 添加多个元素 s.update([5, 6, 7]) # {1, 2, 3, 4, 5, 6, 7}

# 删除元素 s.remove(3) # 如果元素不存在会报错 s.discard(10) # 如果元素不存在不会报错 s.pop() # 随机删除并返回一个元素

# 清空集合 s.clear() # set()

集合的数学运算

集合支持数学中的交、并、差、对称差等运算:

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

# 并集 (Union) print(a | b) # {1, 2, 3, 4, 5, 6, 7, 8} print(a.union(b))

# 交集 (Intersection) print(a & b) # {4, 5} print(a.intersection(b))

# 差集 (Difference) print(a - b) # {1, 2, 3} print(a.difference(b))

# 对称差集 (Symmetric Difference) print(a ^ b) # {1, 2, 3, 6, 7, 8} print(a.symmetric_difference(b))

集合运算对照表

运算运算符方法说明
并集|union()返回所有不重复的元素
交集&intersection()返回共同拥有的元素
差集-difference()返回在 a 中但不在 b 中的元素
对称差^symmetric_difference()返回在 a 或 b 中但不同时在两者中的元素
子集判断<=issubset()判断是否所有元素都在另一个集合中
超集判断>=issuperset()判断是否包含另一个集合的所有元素

实际应用场景

  1. 去重:快速去除列表中的重复元素 unique = list(set(my_list))
  2. 成员检测:检查元素是否存在,时间复杂度为 O(1)
  3. 共同好友:求两个用户好友列表的交集
  4. 数据筛选:快速找出两个数据集的差异
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 152 篇
0 完成
🔥 0