对于a,b in c,d Python

时间:2016-11-29 04:00:13

标签: python loops dictionary for-loop

我有一个键列表和一个值列表,我想填写一个字典,如:

 for key, value in listKeys, listValues:
     dict[key] = value

但是,我收到以下错误:

builtins.ValueError: too many values to unpack (expected 2)

3 个答案:

答案 0 :(得分:7)

您希望the zip function从多个输入中的每个输入生成tuple个值的生成器:

mydict = {}
for key, value in zip(listKeys, listValues):
     mydict[key] = value

那就是说,你可以跳过编写自己的循环的麻烦,让dict构造函数完成工作;它可以使用可迭代的键/值对来初始化自己,并完全避免Python级别循环:

mydict = dict(zip(listKeys, listValues))

或如果mydict是现有的非空dict,请使用update方法,该方法接受与构造函数相同的参数:

mydict.update(zip(listKeys, listValues))

旁注:我将您的变量重命名为mydict,因为遮蔽像dict这样的内置名称是一个糟糕而可怕的想法。

答案 1 :(得分:1)

使用zip:

for key, value in zip(listKeys, listValues): dict[key] = value

答案 2 :(得分:1)

使用zip

同时迭代两个列表
for key, value in zip(listKeys, listValues) :
    dict[key] = value