PEP 276 Simple Iterator for ints

Chris Liechti cliechti at gmx.net
Thu Nov 15 15:18:25 EST 2001


"Ken Seehof" <kseehof at neuralintegrator.com> wrote in
news:mailman.1005848962.18049.python-list at python.org: 

> Hey, what ever happened to the int[:10] iterator idea?
> 
>>>> for i in int[2:10:2]: print i, 2 4 6 8

I've played around with an implementation for that and I like it.

> 
> Like PEP 276, it doesn't require new syntax (just implement a slice
> operator for int).
> 
> int[3:8] should return an iterator equivalent to [3,4,5,6,7]
> 
> int[-4::2] should return an infinite sequence iterator [-4, -2, 0, 2,
> ...] 
> 
> I think that this solves all of the problems that PEP 276 solves,
> without any inconsistent idioms or warts.

i think the advantage of pep 276 would be that you don't need to write an 
extra word "for i in 10:" as oposed to "for i in int[:10]:".
but i don't like the pep 276 syntax much. i think its better when you see 
that its a sequence and just a number realy isn't a sequence. (yes i know 
it would return an iterator but an iterator just returns the elements of a 
sequence, even if the values are calculated)

> 
> Here's what http://python.sourceforge.net/peps/pep-0276.html has to
> say about it:
> 
>     - It would be better to reuse the slicing literal syntax attached
>       to the int class, e.g., int[0:10]
> 
>       Response: Same as previous response.
> 
>         """ Response: Shares disadvantages of other proposals that
>         require 
>          changes to the syntax.  Needs more design to determine how it
>          would handle the general case of start,stop,step,
>          open/closed/half-closed intervals, etc.  Needs a PEP."""
> 
>       In addition, design
>       consideration needs to be given to what it would mean if one
>       uses slicing syntax after some arbitrary class other than class
>       int.  Needs a PEP.
> 
> What syntax change?  There is no syntax change.  A slice operator would
> simply be added to the int class.  Slicing syntax applied to some
> arbitrary class would naturally depend on the slice implementation for
> that class :-) I agree that it needs a PEP.
> 
> Hey, you could also do floats!
> 
>>>> for x in float[ :1.0 : 0.2]: print x, 0.0 0.2 0.4 0.6 0.8
>>>> list(float[3.0:1.0:-0.5]) 
> [3.0, 2.5, 2.0, 1.5]

and that would be an advantage over [x]range()!
 
> Hmm.  Complex numbers?  Of course the step would be in radians :-)  heh
> heh. 

what do you want? drawing circles? ;-)

> 
> - Ken
> 
> 
> 



-- 
Chris <cliechti at gmx.net>




More information about the Python-list mailing list