集合(set)是 Python 中的一种无序、可变、不重复的数据容器。

它常用于去重、成员判断以及数学意义上的集合运算(交集、并集、差集等)。

一、集合的语法与特点

1、无序

集合中的元素没有固定顺序,不能通过索引访问。

2、可变

集合本身可以添加或删除元素。

3、元素唯一

集合自动去重,相同元素只会保留一个。

4、元素必须可哈希

数字、字符串、元组可以作为元素,但列表、字典、集合本身不可作为集合元素。

二、创建集合的方式

1、使用花括号 {}

fruits = {"apple", "banana", "cherry"}
nums = {1, 2, 3, 3, 2}
print(nums)   # {1, 2, 3} 自动去重

注意:{} 默认是空字典,不能用于创建空集合。

empty = {}        # 这是字典
empty_set = set() # 这是空集合

2、使用 构造函数

s1 = set("hello")             # 字符串 → 集合(去重)
print(s1)                     # {'h', 'e', 'l', 'o'}

s2 = set([1, 2, 2, 3])        # 列表 → 集合
print(s2)                     # {1, 2, 3}

3、使用

squares = {x**2 for x in range(5)}
print(squares)   # {0, 1, 4, 9, 16}

想了解更多创建方式(如 frozenset、嵌套集合等),请参阅:

三、集合的常用操作

1、成员判断

s = {1, 2, 3}

print(2 in s)       # True
print(5 not in s)   # True

2、集合运算

a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)   # 并集 {1, 2, 3, 4, 5}
print(a & b)   # 交集 {3}
print(a - b)   # 差集 {1, 2}
print(a ^ b)   # 对称差 {1, 2, 4, 5}

3、修改集合

s = {1, 2}
s.add(3)            # 添加单个元素
s.update([4, 5])    # 批量添加
s.remove(2)         # 删除元素,不存在时报错
s.discard(10)       # 删除元素,不存在也不会报错
print(s)            # {1, 3, 4, 5}

4、内置函数与方法

s = {5, 2, 9, 1}

print(len(s))     # 4,大小
print(max(s))     # 9,最大值
print(min(s))     # 1,最小值
print(sum(s))     # 17,元素求和
print(sorted(s))  # [1, 2, 5, 9],返回排序后的列表

想了解更多操作(如 pop()、clear()、issubset() 等),请参阅:

四、集合的典型应用

1、去重

nums = [1, 2, 2, 3, 3, 4]
unique = set(nums)
print(unique)   # {1, 2, 3, 4}

2、快速查找

集合基于哈希表实现,成员判断比列表更快(平均 O(1))。

data = set(range(1000000))
print(999999 in data)   # True,查找速度快

3、关系测试

a = {1, 2}
b = {1, 2, 3}

print(a <= b)   # True,子集
print(b >= a)   # True,超集

想了解更多进阶技巧(如集合推导式、frozenset、结合 filter/map/zip、模式匹配等),请参阅:

小结

集合是无序、可变、不重复的数据容器。

点赞有美意,赞赏是鼓励