Python集合类型详解:可变与不可变集合的创建及特性
本文详细解析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 参数指定需要转换的组合数据类型。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









