You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按list1对应数值重复list2元素并合并成最终列表?

解决方案

这里有几种实用的方法实现你要的需求:

方法一:基础循环拼接

这是最直观的写法,适合新手理解:

list1 = [5, 1, 20, 19, 1, 1, 1, 1, 1] 
list2 = ['29888.20','29888.20','34298.20','35724.20','36014.20','37924.20','43886.20','54282.20', '79417.20']

final_list = []
# 配对两个列表的对应元素
for repeat_count, value in zip(list1, list2):
    # 把当前value重复指定次数后加入结果列表
    final_list.extend([value] * repeat_count)

运行后final_list的长度就是50,和list1元素总和一致。

方法二:列表推导式(简洁版)

用一行代码搞定,是更贴合Python风格的写法:

final_list = [value for repeat_count, value in zip(list1, list2) for _ in range(repeat_count)]

逻辑和循环写法完全一致,只是把嵌套循环浓缩成推导式,代码更简洁紧凑。

方法三:高效迭代(适合大数据量)

如果你的列表元素非常多,用itertools可以避免生成大量临时列表,节省内存开销:

from itertools import chain

# 生成器版本,内存占用更低
final_list = list(chain.from_iterable((value for _ in range(repeat_count)) for repeat_count, value in zip(list1, list2)))

chain.from_iterable会逐个迭代每个重复序列,不会一次性生成所有临时列表,处理大数据集时性能优势更明显。

内容的提问来源于stack exchange,提问作者Duvan Smuts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:03:24