百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
I

immutables

> 编程语言
开源

一个用于 Python 的高性能不可变映射类型。

1.2K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

一个用于 Python 的高性能不可变映射类型。

不可变的

.. image:: https://github.com/MagicStack/immutables/workflows/Tests/badge.svg?branch=master :target: https://github.com/MagicStack/immutables/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush .. image:: https://img.shields.io/pypi/v/immutables.svg :target: https://pypi.python.org/pypi/immutables Python 的一个不可变映射类型。 底层数据结构是哈希数组映射树 (HAMT) 在 Clojure、Scala、Haskell 和其他函数式语言中使用。 此实现在 CPython 3.7 中用于 contextvars 模块(请参阅 PEP 550_ 和 请参阅 PEP 567 以了解更多详细信息)。 基于 HAMT 的不可变映射对于两者都具有 O(log N) 的性能 set() 和 get() 操作,对于大多数情况来说基本上是 O(1) 相对较小的映射。

以下是一个简单的 get/set 基准测试,比较 HAMT 和使用 Python dict copy-on-write 方法实现的不可变映射(基准代码可在这里 _):

print(map['a'])

将打印 '1'

print(map.get('z', 100))

将打印 '100'

print('z' in map)

将打印 'False'

由于 Maps 是不可变的,因此提供了特殊的 API 用于修改,允许对 Map 对象进行更改并创建新的 (派生) Maps:

map_mutation = map.mutate() map_mutation['a'] = 100 del map_mutation['b'] map_mutation.set('y', 'y') map2 = map_mutation.fin

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Cfrozenhamtimmutableimmutable-collections

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言