【发布时间】:2013-01-17 11:49:45
【问题描述】:
是否可以将两个列表组合为键值对。两个列表中的元素数量相同。
我有两个列表如下。
list1 = ["a","b","c","d","e"]
list2 = ["1","2","3","4","5"]
我如何像下面这样组合
dict['a':1,'b':2,'c':3,'d':4,'e':5]
【问题讨论】:
标签: python
是否可以将两个列表组合为键值对。两个列表中的元素数量相同。
我有两个列表如下。
list1 = ["a","b","c","d","e"]
list2 = ["1","2","3","4","5"]
我如何像下面这样组合
dict['a':1,'b':2,'c':3,'d':4,'e':5]
【问题讨论】:
标签: python
dictA = dict(zip(list1, list2))
有关zip 函数的更多信息可在此处获得:
http://docs.python.org/2/library/functions.html#zip
上面的行首先计算zip(list1, list2),它创建了一个列表,其中包含两个列表的第n个元素中的n个元组。然后,dict 调用获取元组列表并根据元组中的第一个值创建键,相应键的值是第二个值。
【讨论】:
试试这个:
dict (zip (list1, list2))
【讨论】:
这样做:
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')]
【讨论】: