如何在python中将2个列表合并为键值对

时间:2013-02-02 04:33:22

标签: python

是否可以将两个列表组合为键值对。两个列表中的元素数量相同。

我有两个列表如下。

list1 = ["a","b","c","d","e"]
list2 = ["1","2","3","4","5"]

我如何组合如下

dict['a':1,'b':2,'c':3,'d':4,'e':5]

3 个答案:

答案 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')]