2017-02-23 73 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