5️⃣ set(集合)速查表
📋 常用方法速查表
方法 | 用法示例 | 说明 |
---|---|---|
创建集合 | s = {1, 2, 3} | 直接用大括号创建集合 |
创建集合 | s = set([1, 2, 3]) | 用列表或其他可迭代对象创建集合 |
添加元素 | s.add(4) | 添加元素,重复添加无效 |
删除元素 | s.remove(4) | 删除指定元素,元素不存在会报错 |
交集 | s1 & s2 | 返回两个集合的交集 |
并集 | s1Is2 | 返回两个集合的并集 |
差集 | s1 - s2 | 返回s1中有,s2中没有的元素 |
判断元素是否在集合中 | x in s | 判断元素是否存在 |
清空集合 | s.clear() | 删除所有元素 |
1. 集合(set)简介
Python 中的集合(set
)是一组无序且不重复的元素集合。它类似于字典(dict
)的键集合,但不存储对应的值。集合提供了高效的成员检测和数学集合操作,如交集、并集、差集。
2. set 的特点与使用示例
s = {1, 2, 3} # 直接创建集合
s = set([1, 2, 3]) # 用列表创建集合s.add(4) # 添加元素
s.add(4) # 重复添加无效s.remove(4) # 删除元素s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2) # 交集:{2, 3}
print(s1 | s2) # 并集:{1, 2, 3, 4}
print(s1 - s2) # 差集:{1}
3. 不可变对象与可变对象
- 集合(set)和字典(dict)的元素或键必须是不可变对象,因为它们内部依赖哈希值判断唯一性。
- 字符串(
str
)、整数(int
)、元组(tuple
,但其中不能含有可变元素)是常用的不可变对象。 - 列表(
list
)、字典(dict
)、集合(set
)都是可变对象,不能作为集合元素或字典键。
4. 不可变对象示例说明
# 有效的元组作为集合元素或字典键
t1 = (1, 2, 3)
s = set([t1]) # 正常# 包含列表的元组是不可哈希的,不能作为键或集合元素
t2 = (1, [2, 3])
s = set([t2]) # 报错:TypeError: unhashable type: 'list'
5. 字符串是不可变对象示例
a = 'abc'
b = a.replace('a', 'A') # 新字符串 'Abc',a 本身不变
print(a) # 输出 'abc'
print(b) # 输出 'Abc'
字符串的任何操作都会生成新的字符串对象,原字符串不变。
6. 总结
set
是无序且无重复元素的集合,支持高效的数学集合操作。- 集合中的元素必须是不可变对象。
- 选择合适的不可变类型作为字典的键或集合的元素,能确保程序稳定、高效运行。