pythonでループがスコープはみ出す件はいつ直るんだ?
むしろ意図的なのだろうか。
Python3では、リスト内包表記のスコープ漏れ出し問題が解決している:
x = 'string' a = [x for x in (1, 2, 3)] print(x) # 'string'
Python2.xまではx=3だった。
だけど、普通のforの場合には相変わらずもれる。まあ速度の問題が大きいんだろうけど。
x = 'string' for x in (1, 2, 3): pass print(x) # 3
まあ何が言いたいかって言うと、forループに使う一時変数の名前は良く考えてつけましょうってこと。
例えば私は'i'だけはfor以外では使わないようにしている。
逆にk,vとかは辞書絡みで結構適当につかっちゃってるので見直さないとなー。幸いまだ問題にぶつかって無いけど。