[Python-3000] optimizing [x]range (original) (raw)

skip at pobox.com skip at pobox.com
Tue Jul 31 12:22:56 CEST 2007


>> if j in r:
>> ...
>> 
>> Given the context, I think this is a very Obvious Way To Do It, and
>> it's surprising that it isn't as efficient as it looks like it should
>> be.

Guido> Fair enough. So maybe *you* can contribute a patch?

Given the nature of this discussion and who you're asking to provide a patch, I'd rather see a patch for this:

Python 3.0x (py3k-struni:56553M, Jul 26 2007, 13:34:26) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> for 0 <= i < 10 by 3:
...    print(i)
...
0
3
6
9

:-) (Yes, I know the language is frozen at this point.)

Also, bringing it back more on-topic, what should the value of this expression be?

4 in range(0, 10, 3)

That is, are we treating range() as a set or an interval? Maybe I missed earlier messages in this thread where this was discussed, but part of the discussion focused on this construct

0 <= 4 < 10

where there was no option to provide a step size. Also, this particular notation screams out interval, not set, to me.

Skip



More information about the Python-3000 mailing list