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

如何在Python中重复序列N次并递增序列内数值?

解决方法

先理清核心规律:你需要把原始序列(0,0,1,1,1,1)重复n次,每次重复时,序列里的每个元素都加上一个递增的奇数偏移量(1、3、5……)。比如n=3时,三次重复分别加1、3、5,就能得到你要的目标序列。

下面给两种简单可行的实现方式:

方式1:列表推导式

直接用嵌套循环生成,逻辑直观易懂:

sequence = (0, 0, 1, 1, 1, 1)
n = 3
result = [num + (2 * i + 1) for i in range(n) for num in sequence]
# 输出结果:[1,1,2,2,2,2,3,3,4,4,4,4,5,5,6,6,6,6]

方式2:结合itertools.chain

如果处理超大序列,用itertools可以避免生成中间列表,内存效率更高:

import itertools

sequence = (0, 0, 1, 1, 1, 1)
n = 3
# 生成每组偏移后的序列迭代器,再用chain扁平化
result = list(itertools.chain.from_iterable(
    (num + 2 * i + 1 for num in sequence) 
    for i in range(n)
))

为什么之前的方法没生效?

大概率是没找对偏移量的规律——你可能用了每次加1的偏移(比如i+1),但这里需要步长为2的奇数偏移(1、3、5……),也就是2*i+1(i从0开始计数)。因为原始序列的元素跨度是1(0到1),只有用这种偏移,才能让下一组的起始值刚好比上一组的最大值大1,完全匹配你要的结果格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:12:28