如何使用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
相关产品推荐
相关产品推荐

