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

如何根据浮点数值列表与对应出现次数生成重复值组成的新列表

实现方法

方法1:列表推导式(最简洁,适合大部分场景)

直接用双层列表推导式就能实现,代码如下:

values = [10.5, 20.2, 50.0]
occ = [3, 5, 1]

result = [v for v, count in zip(values, occ) for _ in range(count)]
print(result)
# 输出:[10.5, 10.5, 10.5, 20.2, 20.2, 20.2, 20.2, 20.2, 50.0]

逻辑很简单:先把两个列表对应位置的数值和次数配对,然后每个数值重复对应次数后插入结果列表即可。

方法2:itertools工具实现(大数据量场景性能更好)

如果你的输入列表长度很大,用itertools的方案内存占用更低,运行效率更高:

from itertools import chain, repeat

values = [10.5, 20.2, 50.0]
occ = [3, 5, 1]

result = list(chain.from_iterable(repeat(v, count) for v, count in zip(values, occ)))
print(result)

前置校验建议

如果不能保证两个输入列表完全符合要求,可以先加一步校验避免运行报错:

# 校验两个列表长度一致
assert len(values) == len(occ), "values和occ的长度必须相等"
# 校验次数都是非负整数
assert all(isinstance(c, int) and c >= 0 for c in occ), "occ列表的元素必须是非负整数"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:36:03