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

如何简化Python中按x对应次数添加y元素到列表的代码

实现方案

你可以通过遍历两个列表的配对元素实现动态适配,无需硬编码下标,新增元素也不用修改循环逻辑:

易读的基础实现

x = [2, 3, 1]
y = ['a', 'b', 'c']
z = []

# 用zip配对对应位置的次数和值
for count, value in zip(x, y):
    # 按次数重复添加值
    for _ in range(count):
        z.append(value)

print(z)

输出结果和预期一致:['a', 'a', 'b', 'b', 'b', 'c']
如果后续给x新增元素4、y新增元素'd',代码会自动生成4个'd'添加到结果列表,不需要新增任何循环代码。

简洁的一行实现(列表推导式)

如果想要更短的代码,可以用嵌套列表推导式实现相同效果:

x = [2, 3, 1]
y = ['a', 'b', 'c']
z = [value for count, value in zip(x, y) for _ in range(count)]
print(z)

高性能实现(适合处理大体积列表)

如果x和y的元素量很大,推荐用itertools内置方法优化性能:

from itertools import repeat, chain

x = [2, 3, 1]
y = ['a', 'b', 'c']
z = list(chain.from_iterable(repeat(value, count) for count, value in zip(x, y)))
print(z)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:51:01