9

我有这些清单:

list1 = ["a","b","c"]
list2 = ["1","2","3"]

我需要将它们添加到字典中,其中 list1 是键,list2 是值。

我写了这段代码:

d = {}
for i in list1:
    for j in list2:
        d[i] = j
print d

输出是这样的:

{'a':'3','b':'3','c':'3'}

这段代码有什么问题?我怎样才能写它所以输出是

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

谢谢!

4

4 回答 4

18

压缩列表并使用字典理解:

{i: j for i, j in zip(a, b)}

或者,更简单,只需使用dict()

dict(zip(a, b))

你应该保持简单,所以最后一个解决方案是最好的,但我保留了 dict理解示例来展示它是如何完成的。

于 2012-11-05T04:09:24.083 回答
4

你快到了,除了你需要同时遍历列表

In [1]: list1 = ["a","b","c"]

In [2]: list2 = ["1","2","3"]

In [3]: d = {}

In [4]: for i, j in zip(list1, list2):
   ...:     d[i] = j
   ...:

In [5]: print d
{'a': '1', 'c': '3', 'b': '2'}
于 2012-11-05T04:05:59.693 回答
0

您还可以使用dict 理解在一个不错的单行中执行以下操作。

d = {i : j for i, j in zip(list1, list2)}
于 2012-11-05T04:09:30.063 回答
0
list1 = ["a","b","c"]                                                  
list2 = ["1","2","3"]                                                                                                                        
mydict = {}                                                            
for i,j in zip(list1,list2):                                           
   mydict[i] = j                                                      
print mydict   
于 2012-11-05T04:09:44.500 回答