当我们迭代下面的字典时,每次迭代都会(正确地)返回一个键值对
for key, value in dict.items():
print "%s key has the value %s" % (key, value)
'some key'
键有值'some value'
(重复多少次,有 k,v 对)
上面的内容对我来说是有道理的,但是如果我们这样做:
for key in dict.items():
print "%s key has the value %s" % (key, value)
("some key", "some value")
有价值"some value"
(左边的元组将迭代每个键值对,右边的值将保留在字典中的第一个值并重复)
我们最终得到了第一个返回的每个 k,v 对%s
(关键)和第二个%s
(value) 不会迭代,它只是为 for 循环的每次迭代返回字典中的第一个值。
我明白如果你只迭代for key in dict
那么你只迭代键。因为我们正在迭代一组元组(通过使用dict.items()
)在 for 循环中只有键的情况下,循环应运行与第一个示例相同的次数,因为键与键值对一样多。
我无法理解的是为什么 python 在第二个示例中为您提供了整个元组key
.
感谢大家的帮助——我想再添加一个问题。
for a,a in dict.items():
print a
为什么上面打印这个值,如果我print a,a
- 显然这两个值都被打印两次。如果我输入了for a,b
我会迭代(key,value)
成对所以我从逻辑上认为我现在正在迭代(key,key)
对,因此会打印键而不是值。抱歉,我只是在口译员中提出一些基本问题并试图解决问题。