関数のローカル変数と同じ扱いじゃないかね。

def f():
__r = []
__for i in (2, 3):
____r.append(lambda x, n=i: x * n)
__return r

a = f()

こんなコードを実行しても i がグローバルに現れないのと同じ。