一道新浪面试题的解析

python中的一种特殊语法

  

新浪的一道面试题

li = [lambda :x for x in range(10)]
print(li[0]())

结果是多少?

 

分析: 因为lamda :x 这个函数在进行循环时,并没有执行。而在外层打印此时的x,为9,
这时把x的值放入内部进行执行,相当于print(lambda : 9),所以答案为9

 

 

上题的本质如下:

执行结果:
9
9
9
9
9

注意去理解

 

此时修改一下上题中的参数,看看新的结果是什么

执行结果如下:

9
9
9
9
9

注意去理解

 

 

此时如果再次对上题中的参数进行更改,看看结果有会如何变化

执行结果:
0
1
2
3
4

注意理解,本质上就是看其执行了还是没执行。

 

posted @   早晨我在雨中采花  阅读(144)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示