首页 > 解决方案 > 只用一行python代码实现累加和

问题描述

我在面试的时候遇到了这个问题。要求是在一行python中实现累积和。我的回答是

def cum_sum(nums):
    return [sum(nums[0:i+1]) for i in range(len(nums))]

这很丑陋,之前的结果后来没有使用,导致冗余计算。我认为必须有一些高级方法来实现它。

欢迎任何帮助。谢谢。

标签: python

解决方案


accumulatePython3.2+。那应该行得通。

对于您的一段代码,相应的代码将是:

from itertools import accumulate

return list(accumulate(nums)) 

编辑:更新的代码是返回一个列表而不是一个迭代器。


推荐阅读