【发布时间】:2019-01-21 08:56:40
【问题描述】:
我知道 Python 中的字典是无序的。但我很困惑为什么我的 dict 在我输出它们时总是被排序。就像下面的代码一样,无论我如何更改键或值,它总是按顺序打印。谢谢!
num1 = 30
num2 = 192
c1 = 'good'
c2 = 'hello'
a = {'a':8, 'k':c2, 'c':3, 'b':5}
a['g'] = 56
a['jj'] = num2
a['89'] = 'asdfg'
a['u'] =42
a['d'] = c1
a['11'] = 40
a['0'] = num1
print(a)
for key in a:
print(key, a[key])
【问题讨论】:
-
在 Python 3.7 和更新版本中,
dict对象将始终保持插入顺序——现在这是规范的强制要求。 (实际上从 CPython 3.6 开始就是这样,3.7 只是让它成为该语言的官方行为。) -
您使用的是什么版本的 Python?
dicts 是无序的; CPython 3.6 将它们作为实现细节订购,Python 3.7 将其作为语言规范的一部分正式发布。请注意,顺序是 insertion 顺序,而不是基于键类型的任何特定顺序。 -
是的,是一样的。很抱歉我之前没有发现这个问题。
标签: python dictionary