我刚接触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循环对值部分的工作方式。
答案 0 :(得分:4)
您需要同时在两个列表上进行迭代,以便将值与键配对:
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'