2013-03-29 147 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