Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #106308
| Newsgroups | comp.lang.python |
|---|---|
| Date | 2016-04-02 12:47 -0700 |
| References | <87y48xjwqq.fsf@elektro.pacujo.net> <56fe76f2$0$22141$c3e8da3$5496439d@news.astraweb.com> <ndlvrt$1hlp$1@gioia.aioe.org> <mailman.311.1459521083.28225.python-list@python.org> <87lh4xjt37.fsf@elektro.pacujo.net> |
| Message-ID | <1671ea2b-09ff-4745-a6e7-d2c57864cba3@googlegroups.com> (permalink) |
| Subject | Re: Strange range |
| From | Ned Batchelder <ned@nedbatchelder.com> |
On Friday, April 1, 2016 at 10:34:50 AM UTC-4, Marko Rauhamaa wrote:
> Chris Angelico <rosuav@gmail.com>:
>
> > *A range object is not an iterator.*
>
> We now have learned as much.
>
> However, doesn't that extra level of indirection seem like an odd
> choice?
I agree that it is surprising (and confusing) at first. It took me
some getting used to.
Now I think of it like this: An iterable is a thing that could be
iterated, that is, it has a sequence of things. An iterator holds the
current status of a thing that is being iterated. For example, the
pages of a book are an iterable (we could iterate over them), and a
bookmark is an iterator for the pages of a book: it knows where we are
in the iteration.
This analogy illuminates an important point: a single iterable can have
a number of active iterators working over it at once, just as a book can
have a number of bookmarks in it at once.
nums = [1, 2, 3]
for i in nums:
for j in nums:
print i, j
This prints all the pairs of numbers, because the iterator in the first
loop is independent of the iterator(s) in the second loop, even though
they are iterating over the same iterator (the nums list). Without the
extra indirection of iterators over iterables, this code would get
tangled up.
--Ned.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 16:15 +0300
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-02 00:24 +1100
Re: Strange range Steven D'Aprano <steve@pearwood.info> - 2016-04-02 00:26 +1100
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 17:12 +0300
Re: Strange range Random832 <random832@fastmail.com> - 2016-04-01 10:39 -0400
Re: Strange range Fabien <fabien.maussion@gmail.com> - 2016-04-01 16:16 +0200
Re: Strange range Jussi Piitulainen <jussi.piitulainen@helsinki.fi> - 2016-04-01 17:28 +0300
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-02 01:31 +1100
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 17:34 +0300
Re: Strange range Jussi Piitulainen <jussi.piitulainen@helsinki.fi> - 2016-04-01 17:44 +0300
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-02 01:45 +1100
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 18:43 +0300
Re: Strange range Erik <python@lucidity.plus.com> - 2016-04-01 20:58 +0100
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 23:14 +0300
Re: Strange range Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-04-01 20:21 +0000
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 23:44 +0300
Re: Strange range Steven D'Aprano <steve@pearwood.info> - 2016-04-02 21:09 +1100
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-02 13:48 +0300
Re: Strange range Ned Batchelder <ned@nedbatchelder.com> - 2016-04-02 12:47 -0700
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-02 23:44 +0300
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-03 07:05 +1000
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-03 00:40 +0300
Re: Strange range Ned Batchelder <ned@nedbatchelder.com> - 2016-04-02 14:50 -0700
Re: Strange range Stephen Hansen <me+python@ixokai.io> - 2016-04-02 23:43 -0700
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-03 09:58 +0300
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-03 17:10 +1000
Re: Strange range Ethan Furman <ethan@stoneleaf.us> - 2016-04-03 09:28 -0700
Re: Strange range Mark Lawrence <breamoreboy@yahoo.co.uk> - 2016-04-04 13:21 +0100
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-03 17:08 +1000
Re: Strange range Steven D'Aprano <steve@pearwood.info> - 2016-04-03 14:43 +1000
Re: Strange range Random832 <random832@fastmail.com> - 2016-04-03 01:20 -0400
Re: Strange range Steven D'Aprano <steve@pearwood.info> - 2016-04-03 15:28 +1000
Re: Strange range Marko Rauhamaa <marko@pacujo.net> - 2016-04-01 17:32 +0300
Re: Strange range Random832 <random832@fastmail.com> - 2016-04-01 10:42 -0400
Re: Strange range Chris Angelico <rosuav@gmail.com> - 2016-04-02 01:50 +1100
Re: Strange range Ian Kelly <ian.g.kelly@gmail.com> - 2016-04-01 08:52 -0600
csiph-web