2015-10-15 84 views
-2

我有兩個相同長度的列表:如何將列表與第二個列表組合成列表的單個列表?

l1 = [['a','b'],['b','c'],[]] 
l2 = [0,1,3] 

我如何做一個清單l3來自這兩個列表這樣的:

l3 = [['a','b',0],['b','c',1],[3]] 
+1

您是否親自嘗試過,遇到問題? – Leb

+3

提示:['zip'](https://docs.python.org/2/library/functions.html#zip)'em –

+2

如果你想創意,你可以做'map(list.append,l1 ,l2)'。它會改變'l1'(並返回一個沒有意義的'None'列表)。 –

回答

2

提示:這裏的答案

l1 = [['a','b'],['b','c'],[]] 
l2 = [0,1,3] 
l3 = [l1[i] + [x] for i, x in enumerate(l2)] 
+2

請注意'enumerate'在這種情況下運行良好,但如果列表長度不同,則會失敗。特別是如果'l2'是更長的長度。 –

+2

如果列表不總是相同的長度,他可以使用'zip';) –

+0

@NathanielFord嘗試枚舉差異長度列表,這是有道理的。 –

1

您要使用zip

l3 = [x + [y] for x, y in zip(l1, l2)] 

Zip創建一個('item from first list', 'item from the second list')形式的元組列表。然後,只需要移動該列表併合並它們即可。 (以上爲x+[y]的部分理解。)

相關問題