Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何按键对Python字典进行排序?_Python_Sorting_Dictionary_Key - Fatal编程技术网

如何按键对Python字典进行排序?

如何按键对Python字典进行排序?,python,sorting,dictionary,key,Python,Sorting,Dictionary,Key,我试图按键对字典进行排序,但每当我打印回来时,它都会以随机顺序返回索引 students = {'John' : 23, 'Harry' :20, 'Adam' : 25} 我有一本这样的字典。我希望使用键按升序对其进行排序,即我希望输出为: {'Adam' :25,'Harry' :20,'John' :23} 以下是我试图解决的问题 我使用了排序(students.items()) 但它返回了随机排序的字典 我试过了 sorted(students.items(),key=lambda

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

students = {'John' : 23, 'Harry' :20, 'Adam' : 25}
我有一本这样的字典。我希望使用键按升序对其进行排序,即我希望输出为:

{'Adam' :25,'Harry' :20,'John' :23}
以下是我试图解决的问题

  • 我使用了排序(students.items()) 但它返回了随机排序的字典

  • 我试过了

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

  • 但是,这也不起作用

  • 我还尝试了收藏。OrderedDict
  • 这实际上对列表进行了排序,但输出不是Python字典。就像:

    {('Adam', 25),('Harry',20),('John',23)}
    
    但是,我想要这样的输出:

    {'Adam' :25,'Harry' :20,'John' :23}
    
    有人能帮我解决这个问题吗?

    提前感谢

    试试这个:

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

    通常,如果您发现自己想要对字典进行排序(而不是对字典中已排序的元素进行操作),那么您需要重新考虑使用字典。为什么需要对其进行排序?如果只是为了打印,那么您可以迭代
    排序(students.items())
    并以这种方式打印元素,而不需要对实际字典进行排序。从概念上讲,字典没有顺序。
    students = {'John' : 23, 'Harry' :20, 'Adam' : 25}
        
    sorted_students = dict(sorted(students.items()))
    print(sorted_students)