Python中在循环中使用lambda最终使用的是最后一个索引值,而不是设置的索引值。

13 浏览
0 Comments

Python中在循环中使用lambda最终使用的是最后一个索引值,而不是设置的索引值。

使用lambda函数中的for循环索引(index)会导致函数使用索引达到的值,而不是它被设置的值。\n使用Python 3.9.6\n

command_list = []
for i in range(2):
    print(i)
    command_list.append(lambda:print(i))
command_list[0]()
command_list[1]()

\n导致结果:\n

0
1
1
1

\n但我需要/期望的结果是:\n

0
1
0
1

\n如何获得期望的结果?

0