gpt4 book ai didi

python - python dict 的键默认排序发生了什么

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:15 24 4
gpt4 key购买 nike

因为我想把一个dict解码成json,但是我发现输出顺序不是我想要的,然后我做了这样的测试:

a = {'a':'1st','ab':'2nd'}
print(a)
a = {'b':'1st','bc':'2nd'}
print(a)
a = {'c':'1st','cd':'2nd'}
print(a)
a = {'d':'1st','de':'2nd'}
print(a)
a = {'e':'1st','ef':'2nd'}
print(a)
a = {'f':'1st','fg':'2nd'}
print(a)

输出是

{'a': '1st', 'ab': '2nd'}
{'b': '1st', 'bc': '2nd'}
{'c': '1st', 'cd': '2nd'}
{'de': '2nd', 'd': '1st'}
{'ef': '2nd', 'e': '1st'}
{'fg': '2nd', 'f': '1st'}

因为 d 在 ascii 中是 100?

如何解释?我可以更改iter顺序吗?

最佳答案

字典在 Python 中不排序。如果你想要排序的字典,使用 OrderedDict:

>>> from collections import OrderedDict
>>> a = OrderedDict((('f','1st'),('fg','2nd')))
>>> a
OrderedDict([('f', '1st'), ('fg', '2nd')])

但是,为了构造一个 OrderedDict,您需要使用一个保留其排序顺序的对象,例如 listtuple.

关于python - python dict 的键默认排序发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com