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

如何根据原列表元素值将元素重复对应次数生成目标列表

列表元素按自身数值重复的实现方案

注意不要用list作为变量名,会覆盖Python内置的list类型,后续调用列表相关功能会触发异常,建议改为original_list这类自定义名称。

原代码问题说明

你写的代码只有单次if判断逻辑,只会执行1次,既没有遍历原列表的所有元素,也没有针对单个元素实现重复对应次数的逻辑,所以无法得到正确结果。

正确实现方式

1. 列表推导式(最简洁写法)

original_list = [3,4,1]
desired_list = [num for num in original_list for _ in range(num)]
print(desired_list)

运行后直接输出[3, 3, 3, 4, 4, 4, 4, 1],完全符合需求。

2. 两层for循环(基础易读写法)

如果对列表推导式不熟悉,可以用两层for循环实现,逻辑更直观:

original_list = [3,4,1]
desired_list = []
for num in original_list:
    # 每个元素重复num次,依次追加到结果列表
    for _ in range(num):
        desired_list.append(num)
print(desired_list)

3. 列表乘法拼接写法

利用Python的列表乘法特性,直接拼接每个元素重复后的子列表:

original_list = [3,4,1]
desired_list = []
for num in original_list:
    desired_list += [num] * num
print(desired_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:18:01