リスト内包表記について【教えてください】

Pythonの構文でリスト内包表記というのがあります。
何かというと、


>>> for i in range(1,10):
... print i
というプログラムを、

>>> [ i for i in range(1,10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
こういう風に書けるものです。ワンライナーで書くときは重宝しますね。

で、これをみた方は、「じゃあif文はどうするんだ?」と思うと思います。
実はif文もリスト内包表記で書けるのです。


>>> [i for i in range(10) if i % 2 == 0]
[0,2,4,6,8]
for文のすぐ後に書くと、こうやってif文が生きます。
じゃあ、他の文も書けるだろうと思って、

>>> list = [1,2,3,4,5,6,7,8,9]
>>> sum = 0
>>> for i in range(len(list)):
... sum += list[i]
>>> sum
45
リスト内の数値を全部足すプログラムを、

>>> [sum for i in range(len(list)) sum += list[i] ]
と書くと、何故かエラーが出ます。

File "", line 1
[ sum for i in range(len(list)) sum += list[i] ]
^
SyntaxError: invalid syntax
これはなんなんでしょうね。
何が悪いんでしょう。[ ]がネストされているからでしょうか?
解決策がある方、ぜひ教えてください!


次回予告

次回は、おそらくリストのネストをテーマにして書いてみようと思います。
よろしくお願いします。