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

Python按指定长度对列表元素分组求和的实现方法

按指定长度分批求和列表元素

给定两个列表:

numlist = [1, 1, 1, 1, 4, 1, 1, 4, 1, 2]
lenwords = [2, 3, 5]

需要按lenwords中的数值依次从numlist中取出对应数量的元素求和,最终得到[2, 6, 9]的结果。

使用itertools的实现方式

利用迭代器配合itertools.islice可以高效完成需求,迭代器会自动记录已取元素的位置,无需手动维护索引:

import itertools

numlist = [1, 1, 1, 1, 4, 1, 1, 4, 1, 2]
lenwords = [2, 3, 5]

num_iter = iter(numlist)
results = []
for length in lenwords:
    # 从迭代器中截取指定长度的元素并求和
    chunk_sum = sum(itertools.islice(num_iter, length))
    results.append(chunk_sum)

print(results)  # 输出: [2, 6, 9]

手动维护索引的实现方式

如果不想引入itertools,直接通过索引切片也能实现:

numlist = [1, 1, 1, 1, 4, 1, 1, 4, 1, 2]
lenwords = [2, 3, 5]

start = 0
results = []
for length in lenwords:
    end = start + length
    results.append(sum(numlist[start:end]))
    start = end

print(results)  # 输出: [2, 6, 9]

内容的提问来源于stack exchange,提问作者Juliana Gómez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:50:25