2016-11-29 109 views
0

我有键的列表和值的列表,我想,以填补所以像一本字典:对于A,B在C,d的Python

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

不过,我得到以下错误:

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

回答

1

使用ZIP:

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

+0

谢谢,我很欣赏的快速反应 –

+0

如果你看到一个流行的经典重复的一个非常普遍的问题,你可以投票或标志与关闭问题重复。 – TigerhawkT3

7

你想the zip function做出的发电机从每一批投入个价值观的:

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是一个可怕的,可怕的想法。

+0

谢谢,感谢快速回复 –

+0

如果您看到一个非常流行的规范副本的常见问题,您可以对该问题进行投票或标记该问题。 – TigerhawkT3

1

迭代通过两个列表同时使用zip

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

谢谢,感谢快速回复 –

+1

如果您看到一个非常流行的规范副本的常见问题,您可以对该问题进行投票或标记问题。 – TigerhawkT3

+0

为什么投票反对?!我的名誉还不足以做到这一点,并且投票无法提供这些信息,单一评论就足够了。请解除反对票。 @ TigerhawkT3 – Jarvis