This question already has answers here:
Local variables in nested functions
(3个答案)
5年前关闭。
我试图为字符串列表创建lambda函数列表。
但结果表明,无论我使用
它似乎总是保持最后一个循环的格式。为什么?有人能帮忙吗?
(3个答案)
5年前关闭。
我试图为字符串列表创建lambda函数列表。
columns = ['a', 'b', 'c']
formats = []
for i, v in enumerate(columns)
formats.append(lambda x: str(i + 1) + '%4f' %x)
formats[0](12)
的输出应该是1:12.0000
但结果表明,无论我使用
formats[0](13)
、formats[1](26)
还是formats[2](12)
,输出总是类似于3:##.####
。它似乎总是保持最后一个循环的格式。为什么?有人能帮忙吗?
最佳答案
见http://www.toptal.com/python/top-10-mistakes-that-python-programmers-make错误6。Python在调用函数时绑定闭包中的变量,而不是在定义函数时绑定。
关于python - 为什么lambda函数保持循环的最后一步的形式? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23806143/
10-10 02:36