自Python 3.7以来,字典是有序的.那么为什么我不能通过索引获取密钥呢?

推荐答案

构建这样一个API将是一个"诱人的麻烦":实现无法有效地支持它,所以最好不要诱使人们使用不合适的数据 struct .

这与链表很少提供索引API的原因大致相同.这也是完全有序的,但是没有有效的方法来找到任意i的第i个元素.你必须从头开始,依次跟随i个链接找到第i个.

CPython dict的最终结果是一样的.它不使用链表,但最终是一样的:它在封面下使用平面向量,但基本上任何数量的向量条目都可以是"洞".在每次看一个入口之前,没有办法跳过洞.人们期望a[i]次需要O(1)(恒定)时间,而不是O(i)次.

Python-3.x相关问答推荐

如何将CSV或FDF数据解析到Python词典并注入到模板PDF表单中?

具有多个值的极轴旋转和熔化/取消旋转(反转旋转)操作(Pandas 堆叠/取消堆叠交替/UDF覆盖)

如何检索与美汤相似的标签中的文本?

Numba编译时间呈指数级增长--可以像C编译器一样配置优化级别吗?

Django将任何查询显示为html表格

十进制浮点数到整型的转换错误

为什么 mypy 不适用于 sqlalchemy?

如何使用`re.findall`从字符串中提取数据

如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出

Python:获取未绑定的类方法

逗号分隔列表的 argparse 操作或类型

简单的 get/post 请求在 python 3 中被阻止,但在 python 2 中没有

如何确定一个类的元类?

如何模拟 Django 模型对象(及其方法)?

如何在元素列表中找到最大的数字,可能是非唯一的?

在 Python 3 中获取所有超类

接收导入错误:没有名为 *** 的模块,但有 __init__.py

在 WSL (Ubuntu) 中为 python3 安装 venv

在 macbook pro M1 上安装 Tensorflow 时出现zsh:非法硬件指令 python

python中的绝对导入是什么?