如何按关键字按字母顺序排列字典
问题描述:
from collections import OrderedDict
dictionary = {"Charlie": [[7]], "Alex": [[4]], "Brandon": [[8]]}
OrderedDict(sorted(dictionary.items(), key=lambda x: x[0]))
print(dictionary)
好吧我试图按字母顺序排序我的字典,但字典在第三行代码后没有更改顺序,如上所示。 任何人都可以帮我解决问题吗?如何按关键字按字母顺序排列字典
答
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]])])
可能的重复[如何按字母顺序排序字典Python](http://stackoverflow.com/questions/22264956/how-to-sort-dictionary-by-key-in-alphabetical-order-python ) – alfasin 2015-01-20 19:26:26
也复制此:http://stackoverflow.com/questions/9001509/python-dictionary-sort-by-key(我其实更喜欢答案) – moooeeeep 2015-01-20 20:06:31