Compreensão de lista para execução total

Quero obter um total de execução de uma lista de números.

Para fins de demonstração, começo com uma lista seqüencial de números usandorange

a = range(20)

runningTotal = []
for n in range(len(a)):
    new = runningTotal[n-1] + a[n] if n > 0 else a[n]
    runningTotal.append(new)

# This one is a syntax error
# runningTotal = [a[n] for n in range(len(a)) if n == 0 else runningTotal[n-1] + a[n]]

for i in zip(a, runningTotal):
    print "{0:>3}{1:>5}".format(*i)

rendimentos

  0    0
  1    1
  2    3
  3    6
  4   10
  5   15
  6   21
  7   28
  8   36
  9   45
 10   55
 11   66
 12   78
 13   91
 14  105
 15  120
 16  136
 17  153
 18  171
 19  190

Como você pode ver, eu inicio uma lista vazia[], entãoappend() em cada iteração de loop. Existe uma maneira mais elegante de fazer isso, como uma compreensão de lista?

questionAnswers(12)

yourAnswerToTheQuestion