2016-01-22 78 views
1

我有兩個不同的列表,我需要它們像這樣顯示。我覺得我很接近,但程序不起作用。另外,zip的版本在這裏不適合我。如何從兩個列表創建詞典?

>>> list_to_dict(["a", "b"], ["13", "7" ]) 
{ "a": "13", "b": "7" } 

這是我現在有:

def lists_to_dict(): 
    x = ['a', 'b'] 
    y = ['13', '7'] 
    d = {} 
    for i in range(len(x)): 
     d[x[i]] = y[i] 
    return d 

lists_to_dict() 
+1

爲什麼不呢拉鍊工作? –

+1

此代碼有效。如果你製作'x'和'''參數而不是硬編碼它們,然後像​​上面那樣傳遞它們,它也可以工作。它出什麼問題了? – TigerhawkT3

+0

硬編碼參數有助於解決我遇到的問題。謝謝 –

回答

4

dict(zip(x,y))應該是你所需要的。

+1

我認爲你的意思是'dict(zip(x,y))'。 – TigerhawkT3

+0

我做到了!非常感謝 –

-1
>>> a = ["a", "b"] 
>>> b = ["13", "7" ] 
>>> print dict(zip(a,b)) 
{'a': '13', 'b': '7'} 
>>> 
+0

請添加一些解釋! –

0

同一個zip少解決方案,它被翻來覆去重新打包爲理解:

def lists_to_dict(k, v): 
    return { k[i]: v[i] for i in range(min(len(k), len(v))) } 

>>> lists_to_dict(['a', 'b'], [13, 7]) 
{'a': 13, 'b': 7}