如何在python中按键对字典进行排序(而不创建重复的字典)



我正在尝试根据关键字对字典进行排序。例如:

a = {3:2, 2:1, 1:6, 6:5}

我想在不导入任何包的情况下将其转换为这个:

a = {1:6, 2:1, 3:2, 6:5}

您不能真正按关键字对字典进行排序,但您可以按如下排序的关键字枚举字典。或者,您可以将dict操作为排序的OrderedDict,如@Stef所评论的。

for key in sorted(a.keys()):
print(key,a[key])

见下文(解决方案使用OrderedDict,它是核心python的一部分,而不是外部包(

from collections import OrderedDict
a = {3:2,2:1,1:6,6:5}
b = {k:a[k] for k in sorted(a.keys())}
print(b)

输出

{1: 6, 2: 1, 3: 2, 6: 5}