In Python 3 itertools gained a new function accumulate that does what you want.
I'd recommend that you instead used this function. Or if you can't if you're in Python 2 to upgrade.
This would single handedly change your code to:
from itertools import accumulate
new_l = accumulate(l)
If you however done this as a learning exercise, then I'd instead use iterators.
I'd first change l to an iterator, via iter.
Which would allow you to use next to remove the default value.
After this I would then loop through the iterator and yield rather than new_list.append the new values.
This can allow you to get something like:
def accumulate_sum(l):
l = iter(l)
try:
total = next(l)
except StopIteration:
return
yield total
for item in l:
total += item
yield total
Which funnily enough is almost exactly the same to how it's done in itertools.accumulateitertools.accumulate.
If you wanted to at a later date use a different function rather than addition, then you could pass that as a function, to call on each iteration.