我有这些清单:
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'}
谢谢!
答案 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