【发布时间】:2021-06-28 08:14:21
【问题描述】:
我试图按键对字典进行排序,但每当我将其打印回来时,它都会以随机顺序返回索引。
students = {'John' : 23, 'Harry' :20, 'Adam' : 25}
我有一本这样的字典。我想使用键按升序对其进行排序,即我希望输出为:
{'Adam' :25,'Harry' :20,'John' :23}
这是我试图解决的问题。
-
我使用 sorted(students.items()) 但它返回的是随机排序的字典。
-
我试过了
sorted(students.items(), key=lambda x:x[0])
但是,这也没有用。
- 我也试过 collections.OrderedDict
import collections
sortedstudents =collections.OrderedDict(students.items())
这实际上对列表进行了排序,但输出不是 Python 字典。就像:
{('Adam', 25),('Harry',20),('John',23)}
但是,我想要这样的输出:
{'Adam' :25,'Harry' :20,'John' :23}
谁能帮我解决这个问题?
提前致谢!
【问题讨论】:
-
一般来说,如果您发现自己想要对字典进行排序(而不是对字典中的已排序元素进行操作),那么您需要重新考虑使用字典。为什么需要排序?如果它只是用于打印,那么您可以迭代
sorted(students.items())并以这种方式打印元素,不需要对实际字典进行排序。 -
字典在概念上没有顺序。
标签: python sorting dictionary key