Нужно оптимизировать небольшой код в Python

Я написал рабочий код на языке Python, но для его сдачи мне нужно его оптимизировать. Коротко про код: есть список, в котором лежат цифры, нужно найти суму этого списка и вывести в другой список, потом снова найти суму списка но без первого элемента. И так далее. Вот сам код:

def parts_sums(ls):
    a = []
    while ls != []:
        b = sum(ls)
        a.append(b)
        del ls[0]
    return a+[0]

Задача: оптимизация кода.


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

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

Необязательно считать сумму списка на каждой итерации.
Следующий элемент можно найти, вычитая из суммы предыдущий.

Пример:

def parts_sums(li):
    t = sum(li)

    result = []
    for x in li:
        result.append(t)
        t -= x

    return result + [0]
→ Ссылка