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 的特点与使用示例

python 复制代码
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. 不可变对象示例说明

python 复制代码
# 有效的元组作为集合元素或字典键
t1 = (1, 2, 3)
s = set([t1])  # 正常

# 包含列表的元组是不可哈希的,不能作为键或集合元素
t2 = (1, [2, 3])
s = set([t2])  # 报错:TypeError: unhashable type: 'list'

5. 字符串是不可变对象示例

python 复制代码
a = 'abc'
b = a.replace('a', 'A')  # 新字符串 'Abc',a 本身不变
print(a)  # 输出 'abc'
print(b)  # 输出 'Abc'

字符串的任何操作都会生成新的字符串对象,原字符串不变。


6. 总结

  • set 是无序且无重复元素的集合,支持高效的数学集合操作。
  • 集合中的元素必须是不可变对象。
  • 选择合适的不可变类型作为字典的键或集合的元素,能确保程序稳定、高效运行。