Как суммировать значения в списке
Есть лист a. Значения a = [10,15,12,16,9,5]
Как получить a = [10,25,37,53,62,67](прибавляя предудыщее число) возможно через np.sum(a) или типа того?
Ответы (3 шт):
Автор решения: Владислав Харламов
→ Ссылка
Первый вариант:
from itertools import accumulate
ans = [acc for acc in accumulate([10,15,12,16,9,5])]
print(ans) #[10, 25, 37, 53, 62, 67]
Второй вариант:
import numpy as np
ans = np.cumsum([10,15,12,16,9,5])
print(ans) # array([10, 25, 37, 53, 62, 67], dtype=int32)
Автор решения: Danis
→ Ссылка
Вариант с изменением начального списка:
for i in range(1, len(arr)):
arr[i] += arr[i - 1]
Вариант без изменения начального списка:
for i in range(1, len(arr) + 1):
new_arr.append(sum(arr[:i]))
В одну строку:
new_arr = [sum(arr[:i]) for i in range(1, len(arr) + 1)]
Автор решения: Qwertiy
→ Ссылка
При наличии питона 3.8 можно исхитриться и записать в одну строку: песочница
a = [10,15,12,16,9,5]
b = [y := y + x if i else x for i,x in enumerate(a)]
print(b)
Впрочем, код так себе.