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

如何高效生成重复指定次数的数字序列?Python性能优化求助

优化重复数字序列生成效率的方案

方法1:纯Python列表推导式

列表推导式比显式嵌套循环+append的执行效率高很多,底层优化减少了循环中的函数调用开销:

startNum = 1
endNum = 7000
# 生成从startNum到endNum的数字,每个重复endNum次
sequence = [num for num in range(startNum, endNum + 1) for _ in range(endNum)]

如果需要从0开始生成(对应你原代码的逻辑),把range(startNum, endNum + 1)改为range(endNum)即可。

方法2:Numpy向量化操作(大数据量首选)

Numpy的repeat函数基于C实现,处理百万级以上序列时速度远超纯Python,同时内存效率更高:

import numpy as np

startNum = 1
endNum = 7000
# 生成目标序列,若无需Python列表,可省略.tolist()直接使用numpy数组
sequence = np.repeat(np.arange(startNum, endNum + 1), endNum).tolist()

直接使用numpy数组还能避免Python列表的额外内存开销,后续数据处理也更高效。

原代码的问题点

  • 导入了pandas却未使用,多余依赖会增加启动时间,建议删除。
  • 嵌套循环+append的方式效率极低:4900万次append操作会频繁触发列表扩容,产生大量额外性能损耗。
  • 末尾的print(i)仅输出最后一个循环变量值,若要验证结果,建议改为print(len(sequence))查看序列长度是否符合预期(应为endNum * (endNum - startNum + 1))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10