如何使用python对dict进行排序?

lil*_*ang 0 python sorting dictionary

关于排序我的字典我有问题.我的代码是:

x = {('S', 'A'): (5, 8), ('S', 'B'): (11, 17), ('S', 'C'): (8, 14)}

sort_x = sorted(x.items(), key=lambda kv: kv[1])
print sort_x
sort_x_dict = dict(sort_x)
print sort_x_dict
Run Code Online (Sandbox Code Playgroud)

输出:

[(('S', 'A'): (5, 8)), (('S', 'C'): (8, 14)), (('S', 'B'): (11, 17))]
{('S', 'A'): (5, 8), ('S', 'B'): (11, 17), ('S', 'C'): (8, 14)}
Run Code Online (Sandbox Code Playgroud)

blh*_*ing 5

从你的print陈述中可以明显看出你使用的是Python 2.7,但是自从Python 3.7以来,它们只能保证订购.您可以升级到Python 3.7以获得准确的代码,也可以切换到collections.OrderedDictdict代替:

from collections import OrderedDict
sort_x = sorted(x.items(), key=lambda kv: kv[1])
print(sort_x)
sort_x_dict = OrderedDict(sort_x)
print(sort_x_dict)
Run Code Online (Sandbox Code Playgroud)