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

发布于 2021-01-29 16:26:39

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

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

感谢您的帮助

关注者
0
被浏览
144
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    for key in sorted(domains):
        print key
    

    将产生

    de
    hu
    no
    sk
    us
    

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看