lambda-funcs problem

Ryan Ginstrom software at ginstrom.com
Wed Sep 19 08:03:04 EDT 2007


> On Behalf Of dmitrey.kroshko at scipy.org
> F = []
> for i in xrange(N):
>     F.append(lambda x: x + i)
> 
> however, the example don't work - since i in end is N-1 it yields x+
> (N-1) for any func.

How about:

>>> def make_adder(i):
	def adder(x):
		return x+i
	return adder

>>> funcs = [make_adder(i) for i in xrange(10)]
>>> print [func(10) for func in funcs]
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> 

Regards,
Ryan Ginstrom




More information about the Python-list mailing list