我正在尝试在循环中创建函数:
functions = [] for i in range(3): def f(): return i # alternatively: f = lambda: i functions.append(f)
问题是所有函数最终都是相同的。三个函数都返回2,而不是返回0、1和2:
print([f() for f in functions]) # expected output: [0, 1, 2] # actual output: [2, 2, 2]
为什么会发生这种情况,我应该怎么做才能得到3个分别输出0、1和2的函数?