合并两个等量的列表

时间:2012-04-21 15:32:56

标签: python list

问题是在保持订单的同时合并两个列表,并且在合并列表中具有相同数量的项目,这些项目不能容纳超过10个(或任何数量)项目,但是尽可能多。

这是最简单的例子。

l1 = list('1'*10)
l2 = list('2'*10)
lt = l1[:5] + l2[:5]

但是,当一个列表没有5个项目时,新列表将填充其他列表中的项目。

l1 = list('1'*2)
l2 = list('2'*10)
lt = ['1','1','2','2','2','2','2','2','2','2']

l1 = list('1'*10)
l2 = list('2'*2)
lt = ['1','1','1','1','1','1','1','1','2','2']

该功能应该包含任意数量的项目列表。这应该很简单但不是。

1 个答案:

答案 0 :(得分:5)

你想要获得更大的东西:列表中的五个项目或足够的项目来填充列表到所需的长度。

lt = l1[:max(5, 10 - len(l2))] + l2[:max(5, 10 - len(l1))]