2017-02-23 76 views
1

也许我也得太多,但我不能想办法到列表的方式结合起来,我需要的Python:合并列表

[1,2,3,4,5] 
['A','E','I','I','U'] 

导致

[[1,'A'],[2,'E'],[3,'I'],[4,'O'],[5,'U']] 

如果我结合他们,我得到的元组/圆括弧

回答

0

这是zip

list_a = [1,2,3,4,5] 
list_b = ['A','E','I','I','U'] 

list_res = zip(list_a, list_b)  # Python 2.7 
list_res = list(zip(list_a, list_b)) # Python 3 onward 

如果你确实想在内部容器是元组,那么你可以使用map提议@khelwood或列表的理解,或外在的循环,或...

list_of_lists = map(list, list_res)  # Python 2.7 
list_of_lists = list(map(list, list_res)) # Python 3 onward 

注意的类似行为两个Python版本上的mapzip。在python 2上,他们返回列表,而在Python 3上他们返回迭代器。

+2

但你得到的元组,这是OP不需要的。 –

3

如果你真的需要一个列表的列表,你就必须做到以下几点:

>>> a = [1, 2, 3, 4, 5] 
>>> b = ['a', 'b', 'c', 'd', 'e'] 
>>> result = [list(zipped) for zipped in zip(a, b)] 
>>> result 
[[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd'], [5, 'e']] 
4

您可以使用zip

如果你想要内部列表而不是内部元组,也可以使用map

map(list, zip(list_1, list_2)) 

这将适用于list功能,每个元组在拉上名单,给你列出的清单。

(问题指定的Python 2.7,但在Python 3,map不返回一个列表,所以你也必须在list功能应用到地图的结果,即list(map(...))

+0

我认为这比我的回答更加Pythonic。 – leovp

+0

@leovp不,我认为列表理解通常被认为是一种非常Pythonic的方式来做事情。 – khelwood