У меня есть список [0, 1, 2, 3, 4, 5, 6]
, и я суммирую его части так:
l = [0, 1, 2, 3, 4, 5, 6] -> 21
l = [1, 2, 3, 4, 5, 6] -> 21
l = [2, 3, 4, 5, 6] -> 20
l = [3, 4, 5, 6] -> 18
l = [4, 5, 6] -> 15
l = [5, 6] -> 11
l = [6] -> 6
l = [] -> 0
Итак, я получаю соответствующие суммы частей списка: [21, 21, 20, 18, 15, 11, 6, 0]
КодЯ использую:
[sum(l[i:]) for i in range(len(l) + 1)]
Но для списков с диапазоном больше 100000
код значительно замедляется.
Любая идея, почему и как его оптимизировать