Python实现列表元素累加传递求和的问题求助
解决列表前缀和问题
方法一:修改现有代码
你当前代码的问题是初始化了newList = [0],导致结果多了开头的0。只需要把newList初始化为空列表,每次循环将累加后的结果直接追加进去即可:
numbers = [2, 5, 3, 2] newList = [] sumN = 0 for num in numbers: sumN += num newList.append(sumN) print(newList) # 输出: [2, 7, 10, 12]
方法二:使用itertools.accumulate(更简洁)
Python标准库的itertools模块提供了accumulate函数,专门用来生成前缀和序列,一行代码就能搞定:
from itertools import accumulate numbers = [2, 5, 3, 2] newList = list(accumulate(numbers)) print(newList) # 输出: [2, 7, 10, 12]
accumulate会依次对列表中的元素进行累加操作,返回一个迭代器,转换成列表就是你要的结果。
内容的提问来源于stack exchange,提问作者Orion
相关产品推荐
相关产品推荐

