[Python-ideas] Contraction for "for x in range()"

Mikhail V mikhailwas at gmail.com
Tue Feb 14 19:20:37 EST 2017


On 15 February 2017 at 00:41, Nick Timkovich <prometheus235 at gmail.com>
wrote:

> Make some shim object that you can index into to get that functionality,
> could even call it Z (for the set of all integers). Short, and requires no
> new syntax.
>
> class IndexableRange:
>     def __getitem__(self, item):
>         if isinstance(item, slice):
>             start = item.start if item.start is not None else 0
>             step = item.step if item.step is not None else 1
>             if item.stop is None:
>                 return itertools.count(start, step)
>             else:
>                 return range(start, item.stop, step)
>         else:
>             return item
>
> Z = IndexableRange()
>
> for y in Z[0:10:2]:
>     print(y)
>
>
>
l can, also just make function r(a,b,c) : return range(a,b,c) for example,
will look similar.
Initially I was by the idea to remove brackets from for statement.
Now after looking more at examples I realize what the real
issue with the look is. Namely it is the word "in" itself. It is simply too
short
and that makes a lot of space holes in the lines.
And letters 'i' and 'n' sort of suck from readability POV.

E.g. compare:

for x in 1,10,2:

and

for x over 1,10,2 :

So the latter actually would make it look nicer.
But that would probably be even less probable to
be implemented.

Mikhail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170215/75f6eb30/attachment.html>


More information about the Python-ideas mailing list