下面代码输出的结果()def multi(): return [lambda x : i*x for i in range(4)]print([m(3) for m in multi()])
时间: 2023-03-19 17:25:22 浏览: 85
程序的出出结果
这段代码会输出以下结果:
```
[9, 9, 9, 9]
```
这是因为`multi()`函数返回一个由4个lambda函数组成的列表,每个lambda函数都乘以`i`,而`i`在`range(4)`的循环中取值分别为0、1、2和3。但是,由于lambda函数中的`i`是在运行时而非定义时求值的,所以在运行lambda函数时,`i`的值已经是循环结束时的值,也就是3。因此,无论调用哪个lambda函数,都会乘以3,所以输出结果中四个元素的值都是9。
阅读全文