"Diez B. Roggisch" <de...@nospam.web.de> 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