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

如何高效生成每组重复5次的整数列表以实现数据集索引?

高效生成重复整数索引列表的方案

这问题我之前处理数据集时也碰到过,一个个拼接小列表的方式确实效率极低,尤其是数据量再往上走的时候完全不实用。给你几个Python环境下的高效方案,按需选择:

1. 纯Python列表推导式(简洁高效,无依赖)

这是最直接的纯Python实现,底层用C优化过,比手动循环拼接快得多。核心思路是先确定需要的基础数字范围(90个元素÷每个数重复5次=18个数字,从1到18),然后对每个数字生成5次重复再展开:

index_list = [num for num in range(1, 19) for _ in range(5)]

2. itertools工具链(内存友好,适合超大数据量)

如果你的数据集后续可能扩展到非常大的规模,用迭代器的方式可以避免一次性占用大量内存。借助itertools.repeat生成每个数字的重复迭代器,再用chain把它们串联起来:

from itertools import repeat, chain

index_list = list(chain.from_iterable(repeat(num, 5) for num in range(1, 19)))

这种方式不会提前生成完整的列表,而是按需生成元素,内存占用会小很多。

3. Numpy向量化操作(适合数值型数据集,速度拉满)

如果你的索引后续要和数值型数据集配合使用(比如Pandas、Numpy数组),用Numpy的向量化操作是最优解,速度比纯Python快几个数量级:

import numpy as np

index_array = np.repeat(np.arange(1, 19), 5)
# 如果需要转成普通列表的话
index_list = index_array.tolist()

Numpy的repeat函数会直接在底层做向量化重复,不需要Python层面的循环,效率极高。

内容的提问来源于stack exchange,提问作者Anh duong Le

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:45:14