変数のスコープがよくわからない

とりあえずハマった例だけメモっておく。

(for|リスト内包表記)内だけの変数…とはならない

i = 0
for j in range(10):
    a = [x + i for i, x in enumerate([1,2,3,4,5])]
print i

これ、0になると思って実行したら

4

となって、あばばばばばとなった。
追記
これはpython2系の問題である旨のアドバイスを頂いた。3系にすればOKだそうだ(コメント欄参照)。