Поочередное суммирование элементов списка Python

Дан список из чисел A. На выходе необходимо получить список B с суммой всех предыдущих чисел списка A включая число итерируемого индекса.

Например:
На входе:

А=[0,1,2,3,4]

На выходе:

B=[0,1,3,6,10]

Ответы (2 шт):

Автор решения: Zhihar

вариант 1:

B = [sum(A[:i + 1]) for i in range(len(A))]

вариант 2:

s = 0
B = [s := s + v for v in A]

вариант 3:

from functools import reduce

B = reduce(lambda r, v: r + [r[-1] + v] if r else [v], A, [])

вариант 4:

B = list(map(lambda v: sum(A[:v[0]]) + v[1], enumerate(A)))

или

*B, = map(lambda v: sum(A[:v[0]]) + v[1], enumerate(A))

вариант 5:

def func(A):
    return (func(A[:-1]) + [sum(A)]) if A else []

B = func(A)

вариант 6:

from itertools import accumulate

B = list(accumulate(A))

или

from itertools import accumulate

*B, = accumulate(A)

вариант 7:

import numpy

B = numpy.add.accumulate(A)
→ Ссылка
Автор решения: TigerTV.ru

Используйте accumulate:

from itertools import accumulate

A = [0,1,2,3,4]
*B, = accumulate(A)
print(B) # [0,1,3,6,10]
→ Ссылка