关于python:如何按键对字典排序?

How to sort a dictionary by key?

本问题已经有最佳答案,请猛点这里访问。

我试着把听写按键分类,但没有机会。这是我的口述:

1
result={'1':'value1','2':'value2',...}

我用的是python2.7,我发现了这个

1
2
keys = result.keys()
keys.sort()

但这不是我所期望的,我有一个未排序的口述。


标准的python字典本身就是无序的。但是,您可以使用collections.OrderedDict。它保留插入顺序,因此您只需按所需顺序添加键/值对:

1
2
In [4]: collections.OrderedDict(sorted(result.items()))
Out[4]: OrderedDict([('1', 'value1'), ('2', 'value2')])


1
sorted(result.iteritems(), key=lambda key_value: key_value[0])

这将输出排序结果,但字典将保持未排序状态。如果要维护字典的顺序,请使用OrderedDict

实际上,如果按键排序,可以跳过key=...部分,因为迭代的项首先按键排序,然后按值排序(npe在其答案中使用的内容)。


python字典是无序的(用于定义)

您可以使用ordereddict代替