2016-11-29 107 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