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