python字典中循环(for循环)的顺序是什么[重复]


问题内容

这个问题已经在这里有了答案

7年前关闭。

可能重复:
python为什么要像这样排序我的字典?

我对以下内容的输出感到困惑。我不了解执行的循环顺序。

domains = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary",
    "us": "United States", "no": "Norway"  }

for key in domains:
    print key

这里的输出是

sk
de
no
us
hu

但不是

de
sk
hu
us
no

同样,在这里

num = {1:"one",4:"two",23:"three",10:"four"}
for key in num:
    print key
output is
1
10
4
23

但不是

1
4
23
10

感谢您的帮助


问题答案:

Python字典没有顺序。但是,您可以使用sorted(domains)函数指定订单。默认情况下,它使用键进行排序。

for key in sorted(domains):
    print key

将产生

de
hu
no
sk
us

如果要基于值进行排序,可以使用sorted(domains.items(), key = lambda(k, v): (v, k))