是否可以将两个列表组合为键值对。两个列表中的元素数量相同。
我有两个列表如下。
list1 = ["a","b","c","d","e"]
list2 = ["1","2","3","4","5"]
我如何组合如下
dict['a':1,'b':2,'c':3,'d':4,'e':5]
答案 0 :(得分:10)
dictA = dict(zip(list1, list2))
有关zip
功能的更多信息,请点击此处:
http://docs.python.org/2/library/functions.html#zip
上面的行首先评估zip(list1, list2)
,它创建一个包含两个列表的第n个元素中的n个元组的列表。然后dict
调用获取元组列表并从元组中的第一个值创建键,相应键的值为第二个值。
答案 1 :(得分:2)
试试这个:
dict (zip (list1, list2))
答案 2 :(得分:2)
这样做:
my_dict = dict(zip(list1, map(int, list2)))
或者用词汇理解:
my_dict = {k: int(v) for k, v in zip(list1, list2)}
map
将函数映射到可迭代的每个元素。
map(int, list2) == [1, 2, 3, 4, 5]
zip
给出每个列表的第n个元素的元组列表。但是,如果列表长度不同,则会达到最短列表的长度。
zip('foo', '1234') == [('f', '1'), ('o', '2'), ('o', '3')]