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

时间:2015-01-20 19:23:01

标签: python dictionary ordereddictionary

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

好吧我正在尝试按字母顺序按键排序我的字典,但字典在第3行代码之后不会改变顺序,如上所示。 任何人都可以帮我解决问题吗?

3 个答案:

答案 0 :(得分:3)

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

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

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

但请注意,此操作后dictionary仍然无序;上面的行仅使用dictionary中的项目构建新的OrderedDict对象。

答案 1 :(得分:1)

您必须将其分配回dictionary,因为它不是就地

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

现在您的o / p将按预期进行

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

答案 2 :(得分:1)

您的key功能不需要sorted

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