PEP 276 Simple Iterator for ints (fwd)

David Eppstein eppstein at
Wed Nov 28 20:44:05 CET 2001

In article <3C048CCC.6A8C3743 at>,
 Peter Hansen <peter at> wrote:

> I agree that sounds like a worthy goal.  I disagree that your
> suggestion is any more likely to be understood by anyone,
> other than perhaps a mathematician.  As a very experienced
> programmer, I found it quite obscure and am unsure I 
> would have figured it out were it not for the context of
> recent threads on the subject.
> Maybe we should look back to BASIC (for i = 1 to 5: next) 
> or one of the suggestions for something which looks more 
> explicitly like a list of items (for i in [0..5]) or 
> (for i in [0, 1, .. 5] ).  Especially this latter would
> definitely be understandable to anyone, IMHO.

After more thought, I am coming to like Ewing's suggestion of
    for 0 <= i < 5:
much better than the earlier-discussed
    for i in [0, 1, .. 4]:

The latter notation now seems unnecessarily redundant.  Think of it by 
analogy -- which of the following would you most likely use,
    if 0 <= i < 5:
    if i in [0, 1, .. 4]:
    if i in range(5):
or even (with Perl-like conciseness)
    if i in 5:

Another advantage of Ewing's suggestion is that it cleanly avoids the whole 
closed versus half-open debate.

The biggest disadvantage of Ewing's suggestion is the lack of a stepsize 
(other than -1 which is easily handled by reversing the inequalities).  But 
I think +1 and -1 are by far the most common steps, and anything else can 
be handled by multiplying the index within the loop, or by using range().
David Eppstein       UC Irvine Dept. of Information & Computer Science
eppstein at

More information about the Python-list mailing list