2015-10-15 34 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]的部分理解。)

相关问题