猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
求解释此python的lambda表达式
求教一下表达式各变量是怎么变化的,以及结果,尤其是n怎么变呢?
fun = [(lambda n : i + n) for i in range(10)]
慕标5832272
浏览 273
回答 2
2回答
泛舟湖上清波郎朗
这是 python 中为数不多的“怪事”之一fun = [(lambda n: i+n) for i in range(10)] # 等同于fun = [(lambda n: 9+n) for _ in range(10)]因为 lambda 内的参数 i 在运行时才能确定,不是在声明时确定。最后 fun 保存了含有 10 个元素的数组,每一个元素都是 lambda 方法,该方法等于下面的 lambda_item 函数def lambda_item(n): return 9 + n如果整个表达式用 python 代码来诠释的话,可以是这样fun = []for i in range(10): fun.append((lambda n: 9+n))另一个让新人迷惑的是a = [[0]] * 3a[0].append(1)print(a)打印出[[0,1], [0,1], [0,1]]
0
0
0
慕田峪7331174
n是参数,调用的时候才会传进来,现在并没有值
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续