关于lambda

看见一篇python的小计算,代码如下:

nlist = [lamdba x: x**i for i in range(5)]
[nlist[j](10) for j in range(5)]

自己以为最后结果是这样的:

1, 10, 100, 1000, 10000

结果其实是这样的:

10000, 10000, 10000, 10000, 10000, 10000

为什么呢?

这是因为上述代码中的 for i in range(5) 并不是匿名函数中的一部分,是匿名函数外的全局变量

猜你喜欢

转载自www.cnblogs.com/yanshuai0922/p/9892206.html