高效、无序、不重复的数据结构
在 Python 中,集合(set)是一种内置的数据类型,用于存储无序且不重复的元素。
集合非常适合用于:
可以通过花括号 {} 或 set() 函数创建集合:
# 使用花括号(注意:空花括号 {} 创建的是字典!)
s1 = {1, 2, 3, 4}
# 使用 set() 函数
s2 = set([1, 2, 2, 3]) # 结果: {1, 2, 3}
s3 = set("hello") # 结果: {'h', 'e', 'l', 'o'}
empty_set = set() # 正确创建空集合
集合支持多种实用操作:
add(item):添加元素remove(item):移除元素(不存在会报错)discard(item):安全移除元素(不存在不报错)len(s):获取集合大小item in s:检查是否包含某元素s = {1, 2, 3}
s.add(4)
s.discard(5) # 不会报错
print(2 in s) # True
Python 集合天然支持数学集合运算:
a = {1, 2, 3}
b = {3, 4, 5}
# 交集
print(a & b) # {3}
print(a.intersection(b))
# 并集
print(a | b) # {1, 2, 3, 4, 5}
print(a.union(b))
# 差集(a 中有但 b 中没有)
print(a - b) # {1, 2}
print(a.difference(b))
# 对称差集(不同时在两个集合中的元素)
print(a ^ b) # {1, 2, 4, 5}
print(a.symmetric_difference(b))
去重列表:
data = [1, 2, 2, 3, 4, 4, 5]
unique_data = list(set(data))
print(unique_data) # [1, 2, 3, 4, 5](顺序可能变化)
查找共同好友:
user1_friends = {"Alice", "Bob", "Charlie"}
user2_friends = {"Bob", "David", "Eve"}
common = user1_friends & user2_friends
print(common) # {'Bob'}