"Diez B. Roggisch" <[email protected]> writes: > You need to capture n into the closure of the lambda: > > f = [lambda x, n=n: x+j for j in xrange(n)]
You mean [lambda x, j=j: x+j for j in xrange(n)]
Another way would be [(lambda j:lambda x: x+j)(j) for j in xrange(n)]
Or more readably:
def adder(n):
return lambda x: x+n
[adder(j) for j in xrange(n)]
--
Arnaud
--
http://mail.python.org/mailman/listinfo/python-list
