为什么Python3不对字典键进行排序?

时间:2015-09-24 04:10:39

标签: python-3.x dictionary

我有以下字典:

dictionary = {'key5':10, 'key2':20}
dictionary["key3"] = 21
dictionary["key1"] = 22
dictionary["key2"] = 23

sorted(dictionary.keys())
for key,value in dictionary.items():
  print(key)

排序和打印后,值如下所示:

key5 
key1 
key2 
key3

为什么不是" key5"持续多久?

2 个答案:

答案 0 :(得分:7)

这是因为sorted(dictionary.keys())实际上是gives you a list的排序键,它修改集合本身,以便键出来排序。从那个链接(我的大胆):

  

iterable中的项目中返回排序列表。

您正在调用sorted来获取已排序的键列表,但之后您基本上将其丢弃并返回带有dictionary.items()未排序集合。< / p>

要按顺序处理密钥,您需要以下内容:

for key in sorted(dictionary.keys()):
    print(key)

这将根据需要打印出来:

key1
key2
key3
key5

答案 1 :(得分:2)

sorted()返回已排序的序列。您需要迭代此序列以获得排序结果。