questions about functions inside a function

Wildemar Wildenburger wildemar at freakmail.de
Mon Jul 16 08:16:06 EDT 2007


fdu.xiaojf at gmail.com wrote:
> I want to create a list of function.
>
> Here is my code:
> In [9]: a = []
>
> In [10]: for i in range(4):
>     ....:     b = lambda : i**2
>     ....:     a.append(b)
>     ....:
>     ....:
>
> In [11]: for f in a:
>     ....:     f()
>     ....:
>     ....:
> 9
> 9
> 9
> 9
>
> What I want is, the value of i should be bounded to the anonymous function. 
> And the output should like this:
>
> for f in a:
>      print f()
> 0
> 1
> 4
> 9
>
> How to achieve this?
>
> Thanks a lot!
>
>   
I fail to see the point, sorry. Why would you want that? If you simply 
want a list of values you do:

>>> a = [i**2 for i in range(4)]

Can you elaborarate on what it is you really want.

/W



More information about the Python-list mailing list