python - 只用一行python代码实现累加和
问题描述
我在面试的时候遇到了这个问题。要求是在一行python中实现累积和。我的回答是
def cum_sum(nums):
return [sum(nums[0:i+1]) for i in range(len(nums))]
这很丑陋,之前的结果后来没有使用,导致冗余计算。我认为必须有一些高级方法来实现它。
欢迎任何帮助。谢谢。
解决方案
见accumulate
Python3.2+。那应该行得通。
对于您的一段代码,相应的代码将是:
from itertools import accumulate
return list(accumulate(nums))
编辑:更新的代码是返回一个列表而不是一个迭代器。
推荐阅读
- xml - 将字符串附加到变量并将其存储在 XSLT 中的同一变量中
- objective-c - 使用未声明的标识符“importMenu”
- android - 无障碍服务自动关闭
- python-3.x - 在主函数的一个函数中使用局部变量
- java - 我应该在这里使用哪种算法?在字符串数组中查找字符串
- c - Comma(,) 运算符抑制 C 中括号的优先级
- ms-access - MS-Access - 根据语言使用布尔变量的 SQL 命令
- function - 我可以让函数在 Vala 中处理多个数据类型参数吗?
- javascript - 在 Cypress 中测试加载图像
- java - 尝试使用 Gson 库将 Json 解析为 Java 对象时抛出异常