将键列表和值列表转换为字典

时间:2012-11-05 04:03:44

标签: python dictionary

我有这些清单:

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 个答案:

答案 0 :(得分:13)

压缩列表并使用dict理解:

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

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

dict(zip(a, b))

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

答案 1 :(得分: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'}

答案 2 :(得分:0)

您还可以使用dict comprehension以精彩的单行方式执行以下操作。

d = {i : j for i, j in zip(list1, list2)}

答案 3 :(得分:0)

list1 = ["a","b","c"]                                                  
list2 = ["1","2","3"]                                                                                                                        
mydict = {}                                                            
for i,j in zip(list1,list2):                                           
   mydict[i] = j                                                      
print mydict