Python集合类型详解:可变与不可变集合的创建及特性

Hazel
Hazel
发布时间:2026-10-13 | 3人浏览过
原创

本文详细解析Python中集合(set)与不可变集合(frozenset)的特性。介绍如何创建空集合、利用构造函数或字面量生成集合,并强调元素必须可哈希且无序不重复。通过对比set与frozenset在运算结果类型上的表现,以及frozenset作为字典键的应用,帮助开发者掌握集合的正确使用方式。

Python集合的基本特性

集合是一种无序且可变的数据序列。构成集合的元素必须是可哈希(hashable)的,这意味着它们必须属于不可变的数据类型。

空集合的创建与注意事项

创建空集合的方法

使用 set() 函数可以创建一个空集合。

需要注意的是,使用花括号 {} 创建的是空字典,而非空集合。

可变集合与不可变集合的区别

set 表示可变集合,其内部元素支持动态的增加或删除操作。

frozenset 表示不可变集合,一旦创建,其中的元素内容不可被修改。

此外,执行并集、交集或差集等运算时,返回结果的类型与最左侧操作数的类型保持一致。例如,若 s 为 set 类型,t 为 frozenset 类型,执行 s & t 取交集后,返回的结果仍为 set 类型。

集合的创建方式与去重规则

可以使用 set() 函数将其他数据类型转换为集合。


b=[1,2,3,4]

a=set(b)

a

{1,2,3,4}

也可以直接使用花括号 {} 来定义一个集合。


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

a

{1,2,3,4}

与字典类似,由于集合是无序的,当存在重复元素时,系统会自动去重,仅保留其中一个。

不可变集合(frozenset)详解

不可变集合指的是元素内容固定且无序的集合类型。

可以通过调用 frozenset(seq) 来创建不可变集合。


a=frozenset([1,2,3,(1,2,4)])

a

frozenset({1,2,3,(1,2,4)})

其内部元素同样必须满足可哈希的条件。


frozenset([1,2,3,[1,2,4]])

error

不可变集合的主要用途之一是作为字典的键。与元组(tuple)相比,不可变集合是无序的,元素不可重复,且元素本身必须为不可变类型。

该函数可将其他组合数据类型转换为不可变集合类型,或将可变集合(set)转换为不可变集合(frozenset),返回一个包含无重复元素且顺序任意的不可变集合对象。

frozenset()函数语法

frozenset() 函数说明

语法格式:frozenset() 返回一个空的不可变集合对象。

语法格式:frozenset(iterable) 返回一个新的不可变集合对象,其中包含可迭代对象中的元素。

iterable 参数指定需要转换的组合数据类型。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表