when an iterable object is exhausted or not

Franck Ditter franck at ditter.org
Sat Aug 4 15:20:36 EDT 2012


Two similar iterable objects but with a different behavior :

$$$ i = range(2,5)
$$$ for x in i : print(x,end=' ')

2 3 4 
$$$ for x in i : print(x,end=' ')        # i is not exhausted   

2 3 4 

--------- Compare with :

$$$ i = filter(lambda c : c.isdigit(), 'a1b2c3')
$$$ for x in i : print(x,end=' ')

1 2 3 
$$$ for x in i : print(x,end=' ')        # i is exhausted

$$$ 

IMHO, this should not happen in Py3k.
What is the rationale of this (bad ?) design, which forces the programmer
to memorize which one is exhaustable and which one is not ?...

      franck



More information about the Python-list mailing list