摘要:数字、字符串、元组可以作为元素,但列表、字典、集合本身不可作为集合元素。
集合(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) # Trueprint(5 not in s) # True2、集合运算
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 = a) # True,超集想了解更多进阶技巧(如集合推导式、frozenset、结合 filter/map/zip、模式匹配等),请参阅:
小结
集合是无序、可变、不重复的数据容器。
“点赞有美意,赞赏是鼓励”
来源:浩然教育