2012-03-13 68 views
0

我有兩個表像創建帶有兩個列表的字典最有效的方法是什麼?

x = ['a', 'b', 'c', 'd'] and 
y = [1, 2, 3, 4] 

我必須從這兩個列表創建一個字典,這樣的結果是

{ 
'a': 1, 
'b': 2, 
'c': 3, 
'd': 4 
} 

我就用下面

dict(zip(x, y)) 

做的是有一個更好,更快,更高效的方式?
我必須執行上的時間[M,B]和100萬年在不同的名單

謝謝

+13

如果您正在使用Python 2.X即可使用'izip'而不是'zip'來返回迭代器。除此之外,你的方法可以正常工作。 – 2012-03-13 05:59:19

回答

2

Praveen Gollakota's評論此操作,原來的方法將正常工作。在Python 2.x中,您還可以使用itertools模塊中的izip函數。這兩種方法都可以工作:

import itertools 

x = ['a', 'b', 'c', 'd'] 
y = [1, 2, 3, 4] 

method1 = dict(zip(x, y)) 
method2 = itertools.izip(x, y) 

在Python 3.x中,zip默認返回一個迭代器,所以此方法將很好地工作:

x = ['a', 'b', 'c', 'd'] 
y = [1, 2, 3, 4] 

method1 = dict(zip(x, y)) 
+1

參見[這個問題](http://meta.stackexchange.com/q/139075/187647)爲什麼我回答一個老問題。 – 2012-07-14 22:38:29

相關問題