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了