frozenset python是什么?frozenset和set的区别

在 Python 中,frozenset 是一个不可变的集合(Set)类型。

核心特点

  1. 不可变性(Immutable):一旦创建,就不能添加、删除或修改其中的元素。
  2. 哈希able(Hashable):因为它是不可变的,frozenset 本身可以作为字典的键或另一个集合的元素(而普通的 set 不行)。
  3. 无序性:元素没有固定的顺序。
  4. 唯一性:集合中的元素必须是唯一的,不允许重复。

基本用法

创建 frozenset

# 从列表创建
fs = frozenset([1, 2, 3, 4, 5])
print(fs)  # 输出: frozenset({1, 2, 3, 4, 5})
# 从字符串创建
fs_str = frozenset("hello")
print(fs_str)  # 输出: frozenset({'h', 'e', 'l', 'o'})  # 'l' 只出现一次
# 空 frozenset
empty_fs = frozenset()
print(empty_fs)  # 输出: frozenset()

frozenset python是什么?frozenset和set的区别

第11课:Python数据类型之—集合(set)类型
加载中
第11课:Python数据类型之—集合(set)类型

常用方法

frozenset 支持许多与 set 相同的只读操作,

  • issubset() / <=:是否是子集
  • issuperset() / >=:是否是超集
  • union() / :并集
  • intersection() / &:交集
  • difference() / :差集
  • symmetric_difference() / ^:对称差集
  • copy():返回副本
a = frozenset([1, 2, 3])
b = frozenset([2, 3, 4])
# 交集
print(a & b)       # frozenset({2, 3})
# 并集
print(a | b)       # frozenset({1, 2, 3, 4})
# 差集
print(a - b)       # frozenset({1})
# 判断子集
print(a.issubset([1, 2, 3, 5]))  # True

❌ 不支持的操作

由于不可变,以下操作会抛出 AttributeError:

  • add()
  • remove()
  • discard()
  • update()
  • frozenset python是什么?frozenset和set的区别

  • clear()
fs = frozenset([1, 2, 3])
fs.add(4)  # ❌ AttributeError: 'frozenset' object has no attribute 'add'

为什么使用 frozenset?

✅ 主要用途:作为字典的键或集合的元素

普通 set 是可变的,因此不能作为字典的键或放入另一个集合中,而 frozenset 可以。

# 错误示例:普通 set 不能作为字典的键
# my_dict = {set([1, 2]): "value"}  # ❌ TypeError: unhashable type: 'set'
# 正确示例:frozenset 可以作为字典的键
my_dict = {
    frozenset([1, 2]): "value1",
    frozenset([3, 4]): "value2"
}
print(my_dict[frozenset([1, 2])])  # 输出: value1

✅ 用于需要不可变集合的场景

  • 缓存(memoization):当函数参数包含集合时,用 frozenset 可以缓存结果。
  • 确保数据不被意外修改。

frozenset python是什么?frozenset和set的区别


set vs frozenset 对比

特性 set frozenset
可变性 可变(Mutable) 不可变(Immutable)
哈希性 不可哈希(Unhashable) 可哈希(Hashable)
能否作为字典键 ❌ 否 ✅ 是
能否放入其他集合 ❌ 否 ✅ 是
性能 增删改快 创建后只读,查询快
适用场景 动态集合操作 需要不可变集合、作为键

  • 如果你需要一个可以修改的集合,使用 set。
  • 如果你需要一个不可变的集合,或者需要将它用作字典的键或其他集合的元素,使用 frozenset。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/frozenset-python%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9ffrozenset%e5%92%8cset%e7%9a%84%e5%8c%ba%e5%88%ab/

赞 (0)
Linux如何进入root权限?linux切换root用户命令
上一篇 2026年7月11日 22:35
Linux占CPU过高怎么办?如何排查占用CPU高的进程
下一篇 2026年7月11日 22:39

相关推荐

  • 服务器实例规格大小怎么选?服务器实例规格大小推荐

    服务器实例规格大小直接决定云上应用的性能上限、成本效率与扩展能力——选对规格,是系统稳定运行的第一道门槛,核心结论:规格大小≠越大越好,而是“匹配负载”最关键服务器实例规格大小需基于业务特征、性能需求与预算三角关系精准匹配,过大造成资源闲置浪费(平均成本虚高30%+),过小则引发CPU争抢、内存溢出、响应延迟飙……

    服务器运维 2026年4月17日
    6600
  • web服务器面临的安全威胁不包括哪些,有哪些常见类型

    web服务器面临的安全威胁并不包括网络延迟、硬件自然老化、用户误操作或合规爬虫等非恶意行为,这些常被误判为攻击,实则属于运维或业务范畴, 许多运维人员在服务器响应变慢、日志中出现大量错误码时,第一反应是“被攻击了”,但排查后发现只是网络抖动、硬件寿命到期或脚本异常,真正意义上的安全威胁,必须由恶意攻击者发起,以……

    2026年7月29日
    600
  • 服务器换账号密码怎么操作?服务器修改密码步骤详解

    服务器账号密码的定期更换与高强度设置,是保障企业数据资产安全的最核心防线,也是应对网络攻击最具性价比的策略,服务器作为数据存储与业务运行的中枢,其访问权限一旦泄露或被破解,将导致不可估量的损失,通过建立标准化的密码管理机制,不仅能有效阻断暴力破解与撞库攻击,还能在人员变动时及时收回权限,确保系统始终处于受控状态……

    2026年3月9日
    12000
  • 索尼手机用黑域关哪些服务器,怎么设置最安全

    索尼手机用户使用黑域时,最核心的关闭目标是那些高频唤醒CPU、持续占用内存的“系统服务器”和“全家桶进程”,尤其是com.sonyericsson.android.server和com.sony.android.server及其衍生服务,其余非必要后台服务可根据个人使用习惯选择性屏蔽,黑域原理与索尼系统后台的特……

    2026年8月20日
    1400
  • 高级消息队列是什么?高级消息队列如何选型

    2026年企业级分布式架构中,高级消息队列是破解高并发、微服务解耦与数据最终一致性的核心基础设施,选型与调优直接决定系统生死,2026高级消息队列的核心价值与演进趋势架构演进:从“传输管道”到“数字神经”传统消息队列仅解决系统间通信,而高级消息队列(AMQ)已演进为事件驱动架构(EDA)的神经中枢,根据【中国信……

    2026年4月24日
    6000
  • 虚拟机CPU下载是装系统还是直接下载文件,有什么区别?

    虚拟机出现“CPU下载”提示时,这个动作通常指的是下载ISO系统镜像文件,而不是直接下载安装好的系统文件;但如果你问的是虚拟机内部操作系统的下载行为,那答案又不一样了,核心分辨标准是:看这个提示出现在创建虚拟机阶段,还是出现在系统运行阶段,很多新手在装虚拟机时,看到软件界面弹出“正在下载CPU”或“配置CPU……

    2026年9月5日
    300
  • 服务器液冷冷媒有哪几种类型,到底怎么选?

    直接冷却用的绝缘冷却液(如氟化液、合成油)和间接冷却用的水基载冷剂(如去离子水、乙二醇水溶液),具体选择取决于散热架构和部署场景,冷媒分类:先分清“直接冷却”和“间接冷却”服务器液冷系统的冷媒选择,首先取决于热量如何从芯片传递到冷媒,行业里通常把液冷分为直接接触式和间接接触式两大类,对应的冷媒属性完全不同,直接……

    2026年8月26日
    1500
  • 原神官方服务器有哪些,官服和渠道服哪个更好?

    原神官服务器特指米哈游官方运营的服务器,与B站渠道服、第三方平台服相对,当前主要包括天空岛(官方服)、世界树(官方服)及后续新增的官方服务器分区,覆盖PC、iOS、Android和PlayStation平台,国服玩家常用的官方服为天空岛服和世界树服,二者数据互通且均由米哈游直接管理,如果你在意账号安全、充值渠道……

    2026年8月26日
    2900
  • 服务器接收海量监控数据如何处理?海量监控数据处理方案

    面对服务器接收海量监控数据处理的高并发压力,构建“边缘预处理+中心流式架构+冷热分层存储”的三级缓冲体系,是保障系统高可用性与实时性的核心结论,单纯依靠垂直升级硬件已无法满足指数级增长的数据吞吐需求,唯有通过架构优化与数据全生命周期的精细化管理,才能在低延迟与高吞吐之间找到最佳平衡点, 架构设计:构建高吞吐数据……

    2026年3月5日
    12900
  • 服务器盘位由多少决定?硬盘数量与服务器配置关系解析

    服务器盘位主要由服务器机箱设计、主板接口数量、散热系统要求、存储容量需求、服务器类型以及预算和未来扩展性等因素综合决定,这些因素相互关联,共同影响硬盘槽位的数量和配置方式,一个机架式服务器可能提供更多盘位以支持高密度存储,而塔式服务器则注重灵活扩展,理解这些关键点能帮助企业优化IT基础设施,提升数据管理效率,服……

    2026年2月8日
    12340

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注