8

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

我有两个列表如下。

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

我如何像下面这样组合

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

3 回答 3

17

dictA = dict(zip(list1, list2))

zip有关该函数的 更多信息,请参见此处: http ://docs.python.org/2/library/functions.html#zip

上面的行首先计算zip(list1, list2),它创建了一个列表,其中包含两个列表的第 n 个元素中的 n 个元组。然后dict调用获取元组列表并从元组中的第一个值创建键,相应键的值是第二个值。

于 2013-02-02T04:35:14.233 回答
3

尝试这个:

dict (zip (list1, list2))
于 2013-02-02T04:35:00.183 回答
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')]
    
于 2013-02-02T04:36:09.617 回答