python - 是否可以使用预定义的排序机制在 Python 中初始化一个空的 OrderedDict?

标签 python python-2.7 python-3.x ordereddictionary

我能找到的所有示例(in the documentation 等)都通过将数据传递给构造函数来定义 OrderedDicts。来自文档:

# regular unsorted dictionary
d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

# dictionary sorted by key
OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])

另一方面,可以通过不向构造函数提供任何参数来初始化 OrderedDict,这会导致它保留添加键值对的顺序。

我正在寻找一种类似于以下内容的构造,但没有“d.items()”。本质上,我是在不提供示例的情况下要求它记住一种机制,这听起来可能很疯狂。我唯一的选择是通过为单个项目提供首字母“d”(如下)来“破解”它,还是有更好的方法?

OrderedDict(sorted(d.items(), key=lambda t: t[0]))

谢谢!

最佳答案

OrderedDict 只有一种排序算法:插入顺序。无论项目添加到 OrderedDict 的顺序是 OrderedDict 的顺序。

如果你想要一些其他的方法,你可以编写你的 dict 子类,或者只是一个排序函数,你可以在顺序非常重要时应用它。

关于python - 是否可以使用预定义的排序机制在 Python 中初始化一个空的 OrderedDict?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919373/

相关文章:

python - C 中的 Numpy 数组

python - 如何在 Python 2 中发送 HEAD HTTP 请求?

python-3.x - 使用python 3.6安装自定义构建tensorflow 1.12车轮时出错

python - 如何在每个记录器的基础上更改 Python 日志消息的格式?

python - 为什么使用 id() 时用整数分配变量总是恒定的?

python - 将值从元组列表映射到另一个列表

python - 在 Python 代码中使用 Git 命令

python - 在 Mac 上使用 matplotlib for Python 2.7

python - 似乎无法为 python 导入 Tkinter

python - pandas 读取顶行左列空白的 Excel 文件时出现问题