词典编纂释义

2024-04-25 15:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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循环如何为值部分工作。你知道吗


Tags: key代码nameinidforagevalue
1条回答
网友
1楼 · 发布于 2024-04-25 15:25:02

您需要在两个列表上同时迭代,以便将值与键配对:

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'

相关问题 更多 >