[Python-Dev] Bug or not? Different behaviour iterating list andcollections.deque

Christos Georgiou tzot at mediconsa.com
Sun Jan 7 19:23:44 CET 2007


"Josiah Carlson" <jcarlson at uci.edu> wrote in message 
news:20070107095022.8D37.JCARLSON at uci.edu...
>
> "Christos Georgiou" <tzot at mediconsa.com> wrote:

>> [snip]
>> issue, but please understand this is not a question for help to change 
>> the
>> algorithm (this has been done already), so it's not a question of c.l.py.
>> It's a matter of discrepancy.
> [snip]
>
> [snip Josiah's wordy "it's intentional and not a bug" in the form of a 
> suggestion
> for a change of algorithm]

Like I said, this wasn't a c.l.py question, even if you thought it deserved 
a c.l.py answer. In any case, you answered my question, and thank you. It 
not being a bug suits me just fine.

Allow me to make sure we talk about the same thing here, though: both the 
example code I provided and the original one do modify the iterable *only* 
between the following A and B points in time:

Point A: itertools.chain calls iter() on the iterable.

(Appending to the iterable (list, deque) occur here, and only here.)

Point B: itertools.chain starts calling iterable.next().

This is a different case from the one mentioned in the post by Raymond, and 
that is why I asked. For example, if itertools.chain called iter() on its 
arguments when actually needing to iterate over them instead of at the 
beginning, the code would work. But I really, really don't mind whatever the 
function, as long as it's by design, and that's the reason I didn't submit a 
bug in the tracker. That's all. I won't (and never intended) to defend any 
algorithms. 




More information about the Python-Dev mailing list