我对Python还比较陌生,我需要一些帮助来理解如何为下面的代码获得输出:
keys = ['id', 'name', 'age']
values = [10, 'Ross', 19]
a_dict = {key:value for key in keys for value in values}
print(a_dict)产出如下:
{'id': 19, 'name': 19, 'age': 19}我也尝试过嵌套循环,得到了相同的输出。我也尝试在循环中交换键和值,但是没有效果。
有人能解释一下吗?
编辑:
我知道如何获得输出
{'id': 10, 'name': 'Ross', 'age': 19}我只是要求解释一下我写的代码是如何工作的。特别是for循环对值部分的工作方式。
发布于 2019-06-15 05:28:47
您需要同时对两个列表进行迭代,以便将值与键配对:
keys = ['id', 'name', 'age']
values = [10, 'Ross', 19]
a_dict = {key:value for key, value in zip(keys, values)}
print(a_dict)输出:
{'id': 10, 'name': 'Ross', 'age': 19}这是怎么回事?
zip对元组(key, value)中的键和值。key, value = (key, value)key: value你写的代码:
相比之下,您编写的a_dict = {key:value for key in keys for value in values}代码是这样的:
'id': 10, 'name': 10, 'age': 10'
'id': 'Ross', 'name': 'Ross', 'age': 'Ross'
'id': 19, 'name': 19, 'age': 19'https://stackoverflow.com/questions/56607615
复制相似问题