什么是集合?
集合(Set)是Python中的一种无序不重复的数据结构,就像数学中的集合一样。
创建集合
# 使用大括号
fruits = {'苹果', '香蕉', '橙子'}
# 使用set()函数(自动去重)
numbers = set([1, 2, 2, 3, 3, 4])
print(numbers) # {1, 2, 3, 4}
# 空集合必须用set()
empty = set()
基本操作
fruits = {'苹果'}
fruits.add('香蕉')
fruits.remove('苹果') # 元素不存在会报错
fruits.discard('不存在') # 元素不存在不报错
集合运算
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# 并集
print(a | b) # {1, 2, 3, 4, 5, 6}
# 交集
print(a & b) # {3, 4}
# 差集
print(a - b) # {1, 2}
# 对称差
print(a ^ b) # {1, 2, 5, 6}
实用场景
1. 列表去重
nums = [3, 1, 2, 1, 3, 4, 2]
unique = list(dict.fromkeys(nums)) # 保持顺序 [3, 1, 2, 4]
2. 判断唯一性
def has_duplicates(lst):
return len(lst) != len(set(lst))
3. 找出列表差异
old_users = {'Tom', 'Jerry'}
new_users = {'Tom', 'Bob'}
new_joiners = new_users - old_users # {'Bob'}
left_users = old_users - new_users # {'Jerry'}
总结
集合在处理去重、判断归属、多个集合运算上非常高效。合理使用集合能大大简化你的代码。