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))
。