22. 使用'for'循环迭代字典

题目

我对以下代码有些疑惑:

d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
    print key, 'corresponds to', d[key]

我不理解的是key, Python是如何意识到只需要从字典中读取键的呢?key在Python中是一个特殊的词吗?或者它只是一个变量。链接

回答一

key仅仅是一个变量名。

for key in d:

将简单循环遍历字典的键,而不是键和值。同时遍历键和值,需要这么使用。

对于Python 2.x:

for key, value in d.iteritems():

对于Python 3.x:

for key, value in d.items():

为了测试,可以把变量key改为poop

在Python 3.x中,iteritems()已经被items()替代了,仅返回由字典支持的类似于集合的视图,就像iteritems()一样,甚至性能更好。在2.7 中也可以用viewitems()来代替。

items()方法在2和3中都支持,但是在2中会返回字典键值对组成的列表,这个列表不会反应对字典的更改。如果想在3.x中实现2.x中的效果,可以使用 list(d.items())

只遍历键:

for key in d.keys():

只遍历值:

for value in d.values():
geekcircle            updated 2018-09-18 23:24:11

results matching ""

    No results matching ""