from collections import OrderedDict
dictionary = {"Charlie": [[7]], "Alex": [[4]], "Brandon": [[8]]}
OrderedDict(sorted(dictionary.items(), key=lambda x: x[0]))
print(dictionary)
好吧我正在尝试按字母顺序按键排序我的字典,但字典在第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]])])