Use value of variable in lambda expression [duplicate]

Ugly, but one way:

for i in range(4)
    b.append(lambda x, copy=i: x**copy)

You might prefer

def raiser(power):
    return lambda x: x**power

for i in range(4)
    b.append(raiser(i))

(All code untested.)

Leave a Comment