不能使用带两个FOR的词典理解从两个列表中装箱词典。为什么?

2024-06-09 15:01:37 发布

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

我知道有很多方法可以用两个列表制作字典,但是我想用两个FOR循环来迭代两个列表。因此,我使用了以下代码。令人惊讶的是,代码没有遍历包含字典键值的第二个列表,只将列表的最后一个元素视为值

key = ['hello', 'mello', 'vello']
value = [1, 2, 3]
dictionary = {k: v for k in key for v in value}
print('dictionary is ', dictionary)

结果是:

dictionary is: {'hello': 3, 'mello': 3, 'vello': 3}

但我预计结果将是:

dictionary is: {'hello': 1, 'mello': 2, 'vello': 3}

如果有人能为我澄清这一点,我将不胜感激


Tags: 方法key代码inhello列表fordictionary
2条回答

为此,可以使用zip

dictionary = dict(zip(keys, values))

我的理解是,每个循环都会以每个数字作为键重新创建完整的字典,结果只有最后一个值的最终输出(最好通过反转键和值语句,返回{1: 'vello', 2: 'vello', 3: 'vello', 4: 'vello'}来显示)

如果另一个是您的预期输出,那么这应该可以正常工作:

dictionary = dict(zip(key,value))

相关问题 更多 >