没有部分的python lambda函数列表

| 我一直在尝试使用列表推导在python中生成lambda函数的列表。但这没用 例如
fl=[lambda x: x**i for i in range(5)]
我已经检查了另一个问题,它基本上基于i的引用生成相同的功能。 所以我也尝试了偏。
from functools import partial

fl=[partial(lambda x: x**i) for i in range(5)]
但是它也不起作用。任何帮助将不胜感激。干杯〜     
已邀请:
        您正在使用Python范围。
fl=[lambda x, i=i: x**i for i in range(5)]
    
        您实际上是在按名字传3英镑。
fl=[lambda x: x**i for i in range(5)]
每次执行
lambda
时,都会将相同的
i
绑定到该函数,因此(稍后)执行该函数时,它将使用
i
的当前值(将为4)。您应该将其作为默认参数传入:
fl=[lambda x, j=i: x**j for i in range(5)]
实际上,我注意到您误用了ѭ9。这里:
fl = [partial(lambda x, y: y ** x, i) for i in range(5)]
那也一样。     
        另一个常见的解决方法是使用闭包:
def create_f(i):
    def f(x):
        return x**i
    return f

fl = [create_f(i) for i in range(5)]
    

要回复问题请先登录注册