-
茅侃侃
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(),它返回由dict支持的类似集合的视图,iteritems()但更好。这也可以在2.7中获得viewitems()。该操作items()适用于2和3,但在2中它将返回字典(key, value)对的列表,这不会反映items()调用后发生的字典的更改。如果你想要3.x中的2.x行为,你可以打电话list(d.items())。
-
呼如林
迭代dict迭代通过其键没有特定的顺序,你可以在这里看到:编辑:( 在Python3.6中不再是这种情况,但请注意,它还不能保证行为)>>> d = {'x': 1, 'y': 2, 'z': 3} >>> list(d)['y', 'x', 'z']>>> d.keys()['y', 'x', 'z']对于您的示例,最好使用dict.items():>>> d.items()[('y', 2), ('x', 1), ('z', 3)]这为您提供了元组列表。当你像这样循环它们时,每个元组都被解压缩k并v自动:for k,v in d.items():
print(k, 'corresponds to', v)如果循环的主体只有几行,则在循环a时使用k和v作为变量名dict是很常见的。对于更复杂的循环,使用更具描述性的名称可能是个好主意:for letter, number in d.items():
print(letter, 'corresponds to', number)养成使用格式字符串的习惯是个好主意:for letter, number in d.items():
print('{0} corresponds to {1}'.format(letter, number))
-
慕勒3428872
key 只是一个变量。对于Python2.X:d = {'x': 1, 'y': 2, 'z': 3} for my_var in d:
print my_var, 'corresponds to', d[my_var]... 或更好,d = {'x': 1, 'y': 2, 'z': 3} for the_key, the_value in d.iteritems():
print the_key, 'corresponds to', the_value对于Python3.X:d = {'x': 1, 'y': 2, 'z': 3} for the_key, the_value in d.items():
print(the_key, 'corresponds to', the_value)