Что выведет код с картинки?



В любом замыкании в Python переменные связываются по имени. Таким образом, в приведённой выше строке кода будет выведено следующее: [2, 2, 2].



Если бы вы хотели, чтобы вывод был [0, 1, 2], то выход из ситуации — создание отдельной функции или передача аргументов по их имени.

flist = []

for i in range(3):

flist.append(lambda i = i : i)

answer = [f() for f in flist]

print(answer)