Python中如何对列表元素进行逐次累加生成前缀和结果列表
实现列表累加(前缀和)的两种常用方案
方法1:手动遍历实现(易理解,无额外依赖)
逻辑非常简单,全程自己控制计算流程,适合新手理解实现原理:
my_list = [2, 4, 5, 8] # 先处理边界:如果列表为空直接返回空即可 if not my_list: res = [] else: # 初始化结果列表,先放入第一个元素 res = [my_list[0]] for num in my_list[1:]: # 每次取结果列表最后一个已经算好的累加值,和当前元素相加后追加到结果里 res.append(res[-1] + num) print(res)
运行输出:[2, 6, 11, 19]
方法2:使用内置itertools.accumulate(简洁高效)
Python 3.2及以上版本的标准库已经提供了官方实现的累加工具,不需要自己写循环,执行效率更高:
from itertools import accumulate my_list = [2, 4, 5, 8] res = list(accumulate(my_list)) print(res)
运行输出同样为[2, 6, 11, 19]
内容的提问来源于stack exchange,提问作者user16871229
相关产品推荐
相关产品推荐

