[BangPypers] BangPypers Digest, Vol 6, Issue 8

Pythonic pythonic at gmail.com
Mon Feb 18 12:15:57 CET 2008


Ramaswamy, Vivek wrote:
> Hello~ 
>
> I am relatively new to python, but I was trying to auto increment a
> variable through using the lambda anonymous function, but unfortunately
> I am un-able to get the desired result. Please let me know where I am
> going wrong
> g=lambda m:lambda: ++m
> incre=g(0)
> incre()
>   
> 0
> incre()
>   
> 0
>   
++ operator is not supported in Python. Assignment would not work in a
lambda.
You may solve it using one of the approaches below

* 1. Simple (to understand) solution: *

>>> m = 0
>>> def mIncrementer():
...     global m
...     m += 1
...     return m
>>> mIncrementer()
1
>>> mIncrementer()
2

* 2. Best solution (Pythonic)*

>>> import itertools
>>> c = itertools.count(9)
>>> c.next()
9
>>> c.next()
10



More information about the BangPypers mailing list