摘要:在 Python 中,集合(set)是一种无序、可变、不可重复的数据容器,常用于去重、成员判断以及集合运算等。
在 Python 中,集合(set)是一种无序、可变、不可重复的数据容器,常用于去重、成员判断以及集合运算等。
一、创建集合的常见方式
1、使用花括号 {}
最直接的方式,适合手动定义:
fruits = {"apple", "banana", "cherry"}nums = {1, 2, 3, 3, 2}print(nums) # 输出:{1, 2, 3},自动去重注意:
{} 不能创建空集合(它会变成字典),必须用 set:
empty = {} # 这是一个空字典empty_set = set # 空集合2、使用 set 构造函数
可以将任意可迭代对象转换为集合:
set1 = set("hello") # 字符串 → 集合(自动去重) {'o', 'h', 'e', 'l'} set2 = set([1, 2, 3, 2, 1]) # 列表 → 集合 {1, 2, 3}set3 = set((10, 20, 30)) # 元组 → 集合 {10, 20, 30}set4 = set({"a": 1, "b": 2}) # 字典 → 集合(只取键){'a', 'b'}3、使用集合推导式
与列表推导式类似,但使用的是花括号 {}:
squares = {x**2 for x in range(1, 6)} print(squares) # {1, 4, 9, 16, 25}evens = {x for x in range(10) if x % 2 == 0}print(evens)# {0, 2, 4, 6, 8}推导式生成的集合同样会自动去重,且输出顺序不一定与输入顺序相同。
4、不可变集合 frozenset
如果需要集合的集合(嵌套),或集合作为字典键,可以使用 ,因为 frozenset 对象是可哈希的。
fs1 = frozenset([1, 2])fs2 = frozenset([3, 4])s = {fs1, fs2}print(s) # {frozenset({1, 2}), frozenset({3, 4})}二、创建集合的常见误区
1、空集合写成 {} 。
s = {} # ❌ 这是空字典s = set # ✅ 正确的空集合2、不可哈希的类型(如列表、集合、字典) 不能作为集合的元素。
s = {1, [2, 3]} # ❌ 报错:TypeError: unhashable type: 'list'3、误解集合的无序性
集合打印时的顺序可能和输入顺序不同:
s = {3, 1, 2}print(s) # {1, 2, 3}小结
集合是一种无序、可变、无重复元素的数据容器。
常见创建方式:花括号 {}、set 构造函数、推导式、frozenset
常见误区:{} 不是空集合;元素必须可哈希;集合不保证顺序
“点赞有美意,赞赏是鼓励”
来源:友好教育