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

如何使用for循环对列表中每间隔4位的元素分组求和?

如何用for循环对列表按间隔4位分组求和?

嘿,这个分组求和的需求很明确,我来给你两种基于for循环的实现方案,都能完美得到你想要的[12, 15, 18, 21]结果:

方法一:切片+for循环(简洁高效)

利用Python的切片语法快速提取每组元素,再结合for循环遍历分组:

L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
result = []

# 一共要分4组,所以循环0到3这4个起始索引
for i in range(4):
    # 切片语法L[i::4]表示:从索引i开始,步长为4取所有元素
    group_total = sum(L[i::4])
    result.append(group_total)

print(result)  # 输出:[12, 15, 18, 21]

原理说明:
当i=0时,L[0::4]会取到[0,4,8],求和得到12;
i=1时取[1,5,9],求和15;以此类推,正好匹配你的分组规则。

方法二:手动遍历元素(更直观)

如果想更清晰地看到每个元素的分组过程,可以手动遍历列表的每个元素,根据索引判断它属于哪一组:

L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
# 初始化一个包含4个0的结果列表,对应4个分组的初始和
result = [0] * 4

# 用enumerate同时获取元素的索引和值
for idx, num in enumerate(L):
    # 索引对4取余,得到当前元素所属的组号(0-3)
    group_index = idx % 4
    result[group_index] += num

print(result)  # 输出:[12, 15, 18, 21]

原理说明:
每个元素的索引idx对4取余后,结果就是它的分组编号:比如索引4→4%4=0,所以归到第0组;索引5→5%4=1,归到第1组,完全符合你要的间隔4位分组规则。

两种方法都能满足需求,第一种代码更简洁,第二种更适合理解分组逻辑,你可以根据自己的习惯选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:02:39