我有一个键列表和一个值列表,我想填写一个字典,如:
for key, value in listKeys, listValues:
dict[key] = value
但是,我收到以下错误:
builtins.ValueError: too many values to unpack (expected 2)
答案 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