Python:集合的创建

360影视 动漫周边 2025-08-26 13:56 3

摘要:在 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

常见误区:{} 不是空集合;元素必须可哈希;集合不保证顺序

“点赞有美意,赞赏是鼓励”

来源:友好教育

相关推荐