2013-03-29 144 views
1

說我有兩個列表。通過Python中的循環遍歷鍵和值到字典3.3

>>> List1 = ['This', 'is', 'a', 'list'] 
>>> list2 = ['Put', 'this', 'into', 'dictionary'] 

>>> d = {} 

我怎麼會用一個循環,使列表1鍵和列表2的值,使每個索引將自己存入字典,所以作爲一個例子...

>>> d = {'This': 'Put', 'is': 'this', 'a': 'into', 'list': 'dictionary'} 
+2

http://stackoverflow.com/questions/209840/map-two-lists-into-a-dictionary-in-python –

+0

你知道'zip'嗎?如果是這樣,這是微不足道的。如果沒有,請閱讀[文檔](http://docs.python.org/3/library/functions.html#zip),然後它是微不足道的。 – abarnert

回答

1

既然你明確問「我將如何使用循環到X」而不是「IX怎麼做」,這可能是一項家庭作業,他們不希望你用zip來解決這個問題。所以,爲了以防萬一,我會給你一個提示。

首先,這是一種以鎖步迭代兩個列表的方法(假設您知道它們的長度相同)。這不是正確的的方式 - 再次,這是zip - 但如果你的教授希望你做錯的事情,你可以。

length = len(List1) 
for i in range(length): 
    print(List1[i], List2[i]) 

現在你只需要找出該循環,而不是print裏面做什麼,不要讓d[x]等於y每個匹配x和y兩個列表。

+0

請注意,這是一種*糟糕的方法,因爲'zip()'就在那裏,它對於不同長度的列表具有不穩定的行爲,速度很慢,而且它只能用於列表,而不是任意的迭代。 –

+0

那麼我怎麼會精確地使用這些列表的zip()函數將它們放入一個字典中,並且每個列表的索引都相鄰? –

+0

@Lattyware:答案已經非常明確地說過,這是做錯的方法,唯一的理由是如果你的教授希望你以錯誤的方式做事。這不夠清楚嗎? – abarnert