This seems sane:
>>> it = iter(range(10))
>>> for i in it:
... if i >= 3:
... break
...
>>> list(it)
[4, 5, 6, 7, 8, 9]
As does this:
>>> it = iter(list(range(10)))
>>> for i in it:
... if i >= 3:
... break
...
>>> list(it)
[4, 5, 6, 7, 8, 9]
This not so much:
>>> it = range(10)
>>> for i in it:
... if i >= 3:
... break
...
>>> list(it)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Note to self: range(10) is an iterator factory, not an iterator.
Marko
--
https://mail.python.org/mailman/listinfo/python-list
