作为一个单一的可能增长的总和清单?

2024-06-25 22:50:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把整数的一个可数相加,得出每个元素的增长和。这是一件使用迭代编程的简单事情:

def growingSum(elements):
  sum = 0
  for element in elements:
    sum += element
    yield sum

但是,它是否可以在不使用变量的情况下以函数的方式来实现,就像使用理解的单行程序一样?你知道吗


Tags: 函数in元素fordef编程情况整数
2条回答

在Python3.2+上,可以使用^{}

>>> from itertools import accumulate
>>> list(accumulate(range(10)))
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]

从技术上讲,这个生成器表达式的工作原理是:

((globals().__setitem__('__acc', globals()['__acc'] + x), globals()['__acc'])[1] for x in (globals().__setitem__('__acc', 0), iterable)[1])

(我不确定这是不是便携的。它可能依赖于实现定义的行为。)

或者,如果可以引入一种本地方法:

v = [0]
((v.append(v.pop() + x), v[0])[1] for x in iterable)

在任何情况下,使用这种密码被抓获的人都将被枪毙。这是一个大规模的黑客攻击,是对可读性和常识的侮辱,没有丝毫的理由或上诉迹象。你知道吗

相关问题 更多 >