在Python中按我设定的顺序创建字典

13 投票
4 回答
16374 浏览
提问于 2025-04-16 08:47

我正在制作一个字典:

d = {"server":"mpilgrim", "database":"master"}
d['mynewkey'] = 'mynewvalue'

但是当我显示它的时候,我发现这个字典的顺序是反的。

print(d)

{'mynewkey': 'mynewvalue', 'database': 'master', 'server': 'mpilgrim'}

我该怎么把它恢复过来呢?

或者如果字典确实不能排序,那我应该用什么来存储那些顺序重要的信息呢?

4 个回答

4

如果你在使用 Python 3.6,字典现在是按照你添加的顺序来排列的。

https://www.python.org/dev/peps/pep-0468/

否则(就像其他人提到的),我建议你使用 collections.OrderedDict。

20
from collections import OrderedDict

d = OrderedDict()
d["server"] = "mpilgrim"
d["database"] = "master"
d['mynewkey'] = 'mynewvalue'

print(d)

OrderedDict([('server', 'mpilgrim'), ('database', 'master'), ('mynewkey', 'mynewvalue')])

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

18

字典是无序的(虽然它的顺序是确定的,但这个顺序取决于一些你可能没想到的因素,而且你也不需要去关心这些因素,比如键的哈希值、插入的顺序、冲突等等)。在Python 2.7及以上版本中,可以使用 collections.OrderedDict。如果你必须使用旧版本,还有很多其他的实现方法,可以通过谷歌找到。

撰写回答