python - 等量合并两个列表

标签 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']

该函数应采用包含任意数量项目的列表。这应该很简单,但事实并非如此。

最佳答案

你想取大者:列表中的五个项目或足够的项目来填充列表到所需的长度。

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

关于python - 等量合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10260364/

相关文章:

使用 C 创建用户名和余额列表

c# - 为 List<T>() 提供大小参数

java - 什么是每行读取行的最快方法

python - Scrapy 进程未成功抓取

python - Scrapy 正在跟踪并抓取不允许的链接

python - 具有固定和有序键的可变字典

python - 如何取消对 pandas 中的列进行分类

java - 在列表中的项目之间添加项目的最简单方法

c - C 中带有指针的 string.h 和 strncpy

python - 在 Python 中使用 Angular JS( Protractor )和 Selenium