题目
我对以下代码有些疑惑:
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():