Python集合类型及操作详解
目录
一、集合类型定义
核心特性
- 无序性:元素无固定顺序
- 唯一性:元素不可重复
- 不可变性:元素必须是不可变类型(字符串/数字/元组等)
集合创建方式
s1 = {"P", "Y", 123}
s2 = set("Pypy123")
empty_set = set()
重要特性验证
test_set = {"Python", 123, "Python", 123}
print(test_set)
二、集合操作符
基本集合运算
操作符 | 名称 | 描述 | 示例 |
---|
` | ` | 并集 | 包含所有元素的集合 |
- | 差集 | 在A中但不在B中的元素 | A - B → {123} |
& | 交集 | 同时存在的元素 | A & B → {'P', 'Y'} |
^ | 补集 | 不同时存在的元素 | A ^ B → {1, 2, 3, 123} |
增强赋值操作符
A = {"P", "Y", 123}
B = set("Pypy123")
A |= B
A -= B
A &= B
A ^= B
三、集合处理方法
核心操作方法
方法 | 描述 | 示例 |
---|
s.add(x) | 添加元素 | s.add("new") |
s.discard(x) | 移除元素(不报错) | s.discard("P") |
s.remove(x) | 移除元素(不存在时报错) | s.remove("Y") |
s.pop() | 随机取出并删除元素 | item = s.pop() |
s.clear() | 清空集合 | s.clear() |
len(s) | 获取元素个数 | print(len(s)) |
遍历技巧
s = {"A", "B", "C"}
for item in s:
print(item)
s = {1, 2, 3}
try:
while True:
print(s.pop())
except KeyError:
pass
四、集合应用场景
典型应用场景
- 数据去重
ls = ["P", "P", "Y", "Y", 1, 2, 3]
unique_ls = list(set(ls))
- 包含关系检查
keywords = {"if", "else", "while"}
user_input = "if x > 0:"
print(any(word in user_input for word in keywords))
- 集合运算应用
day1_users = {"user1", "user2", "user3"}
day2_users = {"user2", "user3", "user4"}
continuous_users = day1_users & day2_users
小结
集合三要素
- 不可变元素:确保元素的唯一性
- 无序存储:元素无索引位置
- 高效查找:基于哈希表实现快速查询
三大核心操作对比
操作类型 | 方法示例 | 特点 |
---|
元素操作 | add()/remove() | 维护集合元素 |
集合运算 | ` | /-/&/^` |
关系判断 | in/<=/>= | 判断包含关系 |
使用场景速查表
场景类型 | 推荐方法 |
---|
快速去重 | set() 转换+list() 还原 |
元素存在性检查 | in 操作符 |
数据关系分析 | 集合运算符 |
注意:空集合必须使用set()
创建,{}
表示空字典!