2017-05-30 58 views
2

我列出的兩個列表:追加到一個列表的列表順序

my_list = [[1,2,3,4], [5,6,7,8]] 
my_list2 = [['a', 'b', 'c'], ['d', 'e', 'f']] 

我想我的輸出看起來像這樣:

my_list = [[1,2,3,4,'a','b','c'], [5,6,7,8,'d','e','f']] 

我寫了下面的代碼來做到這一點,但我最終在我的結果中獲得更多列表。

my_list = map(list, (zip(my_list, my_list2))) 

這產生的結果是:

[[[1, 2, 3, 4], ['a', 'b', 'c']], [[5, 6, 7, 8], ['d', 'e', 'f']]] 

有沒有辦法,我可以刪除冗餘列表的方式。 謝謝

回答

5

使用zip是正確的方法。你只需要添加元組zip產生的元素。

>>> my_list = [[1,2,3,4], [5,6,7,8]] 
>>> my_list2 = [['a', 'b', 'c'], ['d', 'e', 'f']] 
>>> [x+y for x,y in zip(my_list, my_list2)] 
[[1, 2, 3, 4, 'a', 'b', 'c'], [5, 6, 7, 8, 'd', 'e', 'f']] 
1

您可以使用列表理解郵編:

my_list = [[1,2,3,4], [5,6,7,8]] 
my_list2 = [['a', 'b', 'c'], ['d', 'e', 'f']] 

new_list = [i+b for i, b in zip(my_list, my_list2)] 
1

作爲替代你也可以使用mapsum拉姆達函數來實現這一點(但列表理解方法如前所述在其他答案更好):

>>> map(lambda x: sum(x, []), zip(my_list, my_list2)) 
[[1, 2, 3, 4, 'a', 'b', 'c'], [5, 6, 7, 8, 'd', 'e', 'f']]