如何按关键字按字母顺序排列字典

问题描述:

from collections import OrderedDict 
dictionary = {"Charlie": [[7]], "Alex": [[4]], "Brandon": [[8]]} 
OrderedDict(sorted(dictionary.items(), key=lambda x: x[0])) 
print(dictionary) 

好吧我试图按字母顺序排序我的字典,但字典在第三行代码后没有更改顺序,如上所示。 任何人都可以帮我解决问题吗?如何按关键字按字母顺序排列字典

+0

可能的重复[如何按字母顺序排序字典Python](http://stackoverflow.com/questions/22264956/how-to-sort-dictionary-by-key-in-alphabetical-order-python ) – alfasin 2015-01-20 19:26:26

+0

也复制此:http://stackoverflow.com/questions/9001509/python-dictionary-sort-by-key(我其实更喜欢答案) – moooeeeep 2015-01-20 20:06:31

OrderedDict是n一个命令字典的函数。这是不可能的,因为字典在Python中自然是无序的。相反,OrderedDict是一种支持订购商品的特殊字典。

如果你想在你的代码中使用的OrderedDict,您需要将其保存在一个变量:

ordered_dict = OrderedDict(sorted(dictionary.items(), key=lambda x: x[0])) 

然而要注意dictionary仍将是该操作后,无序的;上面的行只使用dictionary中的项目来构造新的OrderedDict对象。

你将不得不为它分配回dictionary,因为它不是就地

dictionary = OrderedDict(sorted(dictionary.items(), key=lambda x: x[0])) 

现在你的O/P将如预期那样

OrderedDict([('Alex', [[4]]), ('Brandon', [[8]]), ('Charlie', [[7]])]) 

你不需要key为您sorted功能:

>>> OrderedDict(sorted(dictionary.items())) 
OrderedDict([('Alex', [[4]]), ('Brandon', [[8]]), ('Charlie', [[7]])])