问题是在保持顺序的情况下合并两个列表,并使合并列表中的项目数相同,不能容纳超过 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']
该函数应采用包含任意数量项目的列表。这应该很简单,但事实并非如此。
最佳答案
你想取大者:列表中的五个项目或足够的项目来填充列表到所需的长度。
lt = l1[:max(5, 10 - len(l2))] + l2[:max(5, 10 - len(l1))]
关于python - 等量合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10260364/