如何高效为Python列表中的每个元素生成指定次数的重复项?
Python列表元素批量重复的最优实现方法
以下几种方法比普通循环效率高得多,可根据场景选择:
列表推导式(简洁高效)
这是纯Python里最直观且高效的写法,比手动循环append快很多:a = [7086, 4914, 1321, 1887, 7060] n = 2 result = [num for num in a for _ in range(n)] # 输出结果:[7086, 7086, 4914, 4914, 1321, 1321, 1887, 1887, 7060, 7060]itertools工具链(低内存占用)
用内置的itertools模块生成迭代器拼接,避免中间列表占用内存,适合处理超大列表:import itertools a = [7086, 4914, 1321, 1887, 7060] n = 2 result = list(itertools.chain.from_iterable(itertools.repeat(num, n) for num in a))numpy广播(数值列表极速处理)
如果你的列表全是数值,用numpy的数组重复操作速度碾压纯Python方法,数据量越大优势越明显:import numpy as np a = [7086, 4914, 1321, 1887, 7060] n = 2 result = np.array(a).repeat(n).tolist()
注:你给出的示例结果遗漏了原列表中1887的重复,以上代码均按正确逻辑生成完整结果。
内容的提问来源于stack exchange,提问作者titutubs
相关产品推荐
相关产品推荐

