Что здесь происходит? Я пытаюсь создать список функций:
def f(a,b):
return a*b
funcs = []
for i in range(0,10):
funcs.append(lambda x:f(i,x))
Это не делает то, что я ожидаю. Я бы ожидал, что список будет действовать следующим образом:
funcs[3](3) = 9
funcs[0](5) = 0
Но все функции в списке кажутся одинаковыми и устанавливают фиксированное значение равным 9:
funcs[3](3) = 27
funcs[3](1) = 9
funcs[2](6) = 54
Любые идеи?