-2

我试图学习如何在 python 中使用字典并制作了两个非常短的程序。我对程序的输出有疑问。这是代码。

d = {}
d[0] = '0'
d[1] = '1'
d[2] = '2'
for keys in d:
   print d[keys]

它给出了以下输出

0
1
2

但是,当我制作以下程序时。

d = {}
d['name'] = "Pratik"
d['age'] = 17
d['country'] = "India"
for keys in d:
    print d[keys]

它给出了以下输出

India
17
Pratik

如果有人可以向我解释这个输出,那就太好了。查看第一个输出的预期输出是

Pratik
17
India
4

3 回答 3

2

埃米尔给了你解释;对此进行扩展-字典是任意排序的,这意味着有一个顺序,而不是您可以依赖的顺序(或有意义的顺序,例如在您的情况下是数字顺序)。

要按顺序从字典中获取项目,请使用OrderedDict,或者按照您希望它们被获取的顺序创建一个键列表,然后遍历该列表。列表(和元组)保持它们的顺序。

k = ['name', 'age', 'country']

for i in k:
   d[i]
于 2013-10-13T11:40:47.830 回答
2

如果有人可以向我解释这个输出,那就太好了。查看第一个输出的预期输出是

字典没有顺序,它们是简单的哈希表。

于 2013-10-13T11:32:14.443 回答
1

正如@Burhan Khalid 建议的那样,您可以使用有序字典,这是一个快速示例:

from collections import OrderedDict

d = OrderedDict()
d['name'] = "Pratik"
d['age'] = 17
d['country'] = "India"

print d

OrderedDict([('name', 'Pratik'), ('age', 17), ('country', 'India')])

你可以在这里阅读更多

于 2013-10-13T11:43:58.167 回答