如何将分段时间间隔列表转换为累计时间序列以用于绘图?
实现分段时间间隔到累计时间列表的转换
原始输入
原始时间间隔列表:
original = [2,4,6,8,2,4,6,8,10,30,60,30,60]
分段规则:
- 第一段:前4个元素
[2,4,6,8] - 第二段:接下来5个元素
[2,4,6,8,10] - 第三段:接下来2个元素
[30,60] - 第四段:最后2个元素
[30,60]
转换逻辑
核心规则:
- 第一段元素直接作为结果的前半部分;
- 从第二段开始,每个分段的所有元素都加上前一段结果的最后一个值,得到当前段的结果;
- 依次拼接所有分段的处理结果,即为最终累计时间列表。
代码实现(Python)
original = [2,4,6,8,2,4,6,8,10,30,60,30,60] # 按规则拆分分段 segments = [ original[:4], original[4:9], original[9:11], original[11:] ] result = [] prev_end = 0 for idx, seg in enumerate(segments): if idx == 0: result.extend(seg) prev_end = seg[-1] else: processed = [num + prev_end for num in seg] result.extend(processed) prev_end = processed[-1] print(result) # 输出结果:[2, 4, 6, 8, 10, 12, 14, 16, 18, 48, 78, 108, 138]
验证
- 第一段处理后:
[2,4,6,8],最后一个值为8; - 第二段每个元素加8,得到:
[10,12,14,16,18],最后一个值为18; - 第三段每个元素加18,得到:
[48,78],最后一个值为78; - 第四段每个元素加78,得到:
[108,138]; - 拼接后完全匹配目标列表。
内容的提问来源于stack exchange,提问作者pankan
相关产品推荐
相关产品推荐

