【问题标题】:How to sort a Python dictionary by keys? [duplicate]如何按键对 Python 字典进行排序? [复制]
【发布时间】:2021-06-28 08:14:21
【问题描述】:

我试图按键对字典进行排序,但每当我将其打印回来时,它都会以随机顺序返回索引。

students = {'John' : 23, 'Harry' :20, 'Adam' : 25}

我有一本这样的字典。我想使用键按升序对其进行排序,即我希望输出为:

{'Adam' :25,'Harry' :20,'John' :23}

这是我试图解决的问题。

  1. 我使用 sorted(students.items()) 但它返回的是随机排序的字典。

  2. 我试过了

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

但是,这也没有用。

  1. 我也试过 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


【解决方案1】:

试试这个:

students = {'John' : 23, 'Harry' :20, 'Adam' : 25}
    
sorted_students = dict(sorted(students.items()))
print(sorted_students)

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2012-08-09
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2013-09-27
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多