On Wed, 19 Sep 2007 04:39:44 -0700, dmitrey.kroshko wrote:
> I need to create a Python list of lambda-funcs that are dependent on
> the number of the ones, for example
>
> 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.
>
> So what's the best way to make it valid?
The variable is bound to the name `i` when the lambda function is
created not to the value that `i` had at that time. The idiomatic way is
to use a default value for an argument because those are evaluated at
definition time of functions::
F.append(lambda x, i=i: x + i)
Ciao,
Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list