集合(set)是Python中一种无序且不重复的数据结构,常用于去重和集合运算。以下是Python集合的详细教程:
1. 创建集合集合由数字、字符串或布尔值组成,元素类型可以混合,但必须唯一。创建方式有两种:
1.1 使用 set() 函数- 可创建空集合或转换其他可迭代对象(如列表、元组、字符串、字典)。
- 重复元素会自动去重,字典仅保留键。
- 布尔值处理:True 等同于 1,False 等同于 0。
a = set() # 空集合b = set([1, 2, 3, 1, 2]) # {1, 2, 3}(去重)c = set({'x': 1, 'y': 2}) # {'x', 'y'}(仅保留键)d = set('hello') # {'h', 'e', 'l', 'o'}(字符串拆分为字符)1.2 使用大括号 {}- 非空集合可直接用 {元素1, 元素2} 创建。
- 注意:单独写 {} 会创建空字典,而非集合。
a = {1, 'a', False} # {1, 'a', 0}(False 等同于 0)2. 操作集合2.1 添加元素使用 add() 方法添加单个元素:
a = {1, 2, 3}a.add(4) # 添加元素 4a.add('x') # 添加字符串 'x'print(a) # {1, 2, 3, 4, 'x'}2.2 移除元素- remove():移除指定元素,若不存在则报错。
- discard():移除元素但不报错(推荐)。
a = {1, 2, 'x'}a.remove('x') # 移除 'x'a.discard(3) # 无报错,即使 3 不存在print(a) # {1, 2}3. 集合运算集合支持四种基本运算,可通过方法或运算符实现:
3.1 交集、并集、差集、对称差集- 交集(& 或 intersection()):两集合共有的元素。
- 并集(| 或 union()):两集合所有元素(去重)。
- 差集(- 或 difference()):属于A但不属于B的元素。
- 对称差集(^ 或 symmetric_difference()):仅属于A或B的元素。
a = {1, 2, 3, 4}b = {3, 4, 5, 6}print(a & b) # {3, 4}(交集)print(a | b) # {1, 2, 3, 4, 5, 6}(并集)print(a - b) # {1, 2}(差集)print(a ^ b) # {1, 2, 5, 6}(对称差集)3.2 子集与超集- 子集团伏(<= 或 issubset()):判断集合A的所有元素是否都在集合B中。
- 超集(>= 或 issuperset()):判断集合A是否包含集合B的所有元素。
- 真子集(<):子集且不等于。
a = {1, 2, 3}b = {1, 2}print(b <= a) # True(b是a的子集)print(a >= b) # True(a是b的超集)print(b < a) # True(b是a的真子集)4. 其他常用操作4.1 获取集合长度使用 len() 返回元素数量:
a = {1, 2, 3, 'a'}print(len(a)) # 44.2 检查元素是否存在使用 in 或 not in:
a = {'a', 1, True}print('a' in a) # Trueprint(0 in a) # False(True 等同于 1,但 0 不存在)5. 注意事项- 集合是无序的,不支持索引访问塌升携。
- 元素必须可哈笑仔希(如数字、字符串、元组),列表和字典不能作为集合元素。
- 空集合必须用 set() 创建,{} 表示空字典。
总结Python集合是高效处理唯一性和集合关系的工具,适合去重、成员检查及数学运算。掌握其创建、操作和运算方法,能大幅提升代码简洁性和效率。