在Python字典中,循环(for循环)的顺序是什么?

10 浏览
0 Comments

在Python字典中,循环(for循环)的顺序是什么?

我对以下的输出有点困惑。\n我不明白执行循环的顺序。\n

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

\n输出如下:\n

sk
de
no
us
hu

\n而不是\n

de
sk
hu
us
no

\n同样地,这里\n

num = {1:"one",4:"two",23:"three",10:"four"}
for key in num:
    print key
输出如下:
1
10
4
23

\n而不是\n

1
4
23
10

\n感谢您的帮助。

0
0 Comments

Python中的字典(dictionary)的循环顺序是不确定的。然而,在没有对字典进行修改的情况下,它的顺序是保持不变的。

如果想要按照键(key)的顺序进行循环,可以对键进行排序:

for key in sorted(domains):
    print(key)

最后,值得注意的是,较新版本的Python中有一个`collections.OrderedDict`的类,它保留了插入的顺序。可以使用它来达到有序循环的目的。

以上就是关于“Python字典中循环顺序的问题”的原因以及解决方法。

0
0 Comments

Python 字典没有顺序。然而,你可以通过使用 sorted(domains) 函数来指定顺序。默认情况下,它使用键进行排序。

for key in sorted(domains):
    print key

将产生以下输出:

de
hu
no
sk
us

如果你想根据值进行排序,你可以使用类似于 sorted(domains.items(), key = lambda(k, v): (v, k)) 的方法。

0
0 Comments

Python字典不保留顺序,键和值按照一个不确定的顺序列出,这个顺序在不同的Python实现中是不同的,取决于字典插入和删除的历史记录。CPython中的字典是用哈希表实现的,以实现快速查找和成员测试,并且枚举键或值的顺序与它们在哈希表中列出的项目的顺序相同。要么每次显示时对键进行排序,要么使用不同类型的数据结构来保留顺序。Python 2.7或更新版本有一个collections.OrderedDict()类型,或者您可以使用一个由两个值的元组组成的列表(此时查找单个键值对的速度将变慢)。

0