[docs] [issue29414] Change 'the for statement is such an iterator' in Tutorial

Terry J. Reedy report at bugs.python.org
Fri Feb 3 18:01:09 EST 2017


Terry J. Reedy added the comment:

The preceding sentences are also off.  "In many ways the object returned by range() behaves as if it is a list, but in fact it isn’t. It is an object which returns the successive items of the desired sequence when you iterate over it, but it doesn’t really make the list, thus saving space."

A range object is more like a tuple than a list.  Ranges and tuples are immutable sequences and the only non-dunder methods of both are count and index.  Lists, on the other hand, are mutable and several other exposed methods.  The difference between range and tuple is that ranges generate items as requested while tuples can be added and multiplied.

"Ranges are similar to tuples in being sequences with count and index methods.  Both can be indexed, sliced, and iterated.  However, ranges cannot be added or multiplied.  They generate their items on request, thus saving space"

I am still thinking about the next two sentences, discussed above.  I do not like 'construct' to mean 'statement' (or callable).

----------
nosy: +terry.reedy
versions:  -Python 3.3, Python 3.4

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue29414>
_______________________________________


More information about the docs mailing list