关于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) 并不是匿名函数中的一部分,是匿名函数外的全局变量