a = [lambda x:x*i for i in range(3)]求下列输出
print(a)
print(a[0](2))
print(a[1](3))
print(a[2](4))
*输出结果*:
[<function <listcomp>.<lambda> at 0x000001DBF9649730>,
<function <listcomp>.<lambda> at 0x000001DBF9649840>,
<function <listcomp>.<lambda> at 0x000001DBF96498C8>]
4
6
8
*结果分析*:在函数调用之前列表推导式循环创建了三个函数,在循环最后一次时i的值
为2,然后再进行调用就会出现所有参数都与2相乘的结果
类似于下列代码
a = []
for i in range(3):
def fun(x):
return x*i
a.append(fun)
print(a[0](2))
print(a[1](3))
print(a[2](4))