python易错题之lambda 以及 for循环中内嵌函数
Posted 小名的同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python易错题之lambda 以及 for循环中内嵌函数相关的知识,希望对你有一定的参考价值。
li = [] for x in range(10): print(x) //在函数没有执行前(li[0]()),for 循环中x已经执行完,x会一直为 9 def fun(): print(x) //一直为 9 ,fun函数在for循环中是没有被调用的 return x li.append(fun) print(li[0]()) //9
li = [lambda :x for x in range(10)] print(type(li)) #<class ‘list‘> print(type(li[0])) #<class ‘function‘> for i in li: print(i()) #结果是一直为 9
解析:
li = [lambda :x for x in range(10)]
变成函数:
li = []
for x in range(10):
def fun(): #lambda中没有定义参数
return x
li.append(fun) #当函数还没有运行的时候,x已经为9了
以上是关于python易错题之lambda 以及 for循环中内嵌函数的主要内容,如果未能解决你的问题,请参考以下文章