理解python字典中的值调用
我正在阅读“Python编程”,我有以下代码:理解python字典中的值调用,python,Python,我正在阅读“Python编程”,我有以下代码: bob = {'name':'Bob Smith', 'age':42, 'pay':30000, 'job':'dev'} for (key, record) in [('bob', bob)]: print(record) 这个打印出来: {'name':'Bob Smith', 'age':42, 'pay':30000, 'job':'dev'} 我的困惑是,在我看来,它正在做与此相同的事情: for record in bo
bob = {'name':'Bob Smith', 'age':42, 'pay':30000, 'job':'dev'}
for (key, record) in [('bob', bob)]:
print(record)
这个打印出来:
{'name':'Bob Smith', 'age':42, 'pay':30000, 'job':'dev'}
我的困惑是,在我看来,它正在做与此相同的事情:
for record in bob:
print(record)
但是上面的代码打印出的是键,而不是值
所以我的问题是,两个for循环之间的区别是什么,导致它们同时打印键和值还是只打印键?在[('bob',bob)]中的for(键,记录)
中,您没有迭代bob
。您正在迭代[('bob',bob)]
,这是一个包含一个元素的列表。该元素是两个元素的元组,字符串'bob'
和对象bob
(这是一个字典)。循环将第一个分配给键
,第二个分配给记录
。但是你不用键
,只需打印记录
,就可以打印字典
在bob中记录的
中,您迭代了bob
,这是一个字典。迭代字典会给你它的键,所以你会得到它的键。第一个相当于print(bob)
ya,这里发生了元组解包<代码>(键,记录)
引用每个列表项。所以字符串bob
应该是键,dictbob
应该是值。为什么你认为第一个是“做与第二个相同的事情”?第一个是迭代[('bob',bob)]
,第二个中没有类似的内容。谢谢你澄清了这一点。