Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解python字典中的值调用_Python - Fatal编程技术网

理解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

我正在阅读“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 bob:
    print(record)
但是上面的代码打印出的是键,而不是值

所以我的问题是,两个for循环之间的区别是什么,导致它们同时打印键和值还是只打印键?

在[('bob',bob)]中的
for(键,记录)
中,您没有迭代
bob
。您正在迭代
[('bob',bob)]
,这是一个包含一个元素的列表。该元素是两个元素的元组,字符串
'bob'
和对象
bob
(这是一个字典)。循环将第一个分配给
,第二个分配给
记录
。但是你不用
,只需打印
记录
,就可以打印字典


在bob中记录的
中,您迭代了
bob
,这是一个字典。迭代字典会给你它的键,所以你会得到它的键。

第一个相当于
print(bob)
ya,这里发生了元组解包<代码>(键,记录)
引用每个列表项。所以字符串
bob
应该是键,dict
bob
应该是值。为什么你认为第一个是“做与第二个相同的事情”?第一个是迭代
[('bob',bob)]
,第二个中没有类似的内容。谢谢你澄清了这一点。