Author hpesoj
Recipients hpesoj
Date 2009-09-02.20:49:18
SpamBayes Score 1.12993e-09
Marked as misclassified No
Message-id <1251924560.8.0.143337742055.issue6826@psf.upfronthosting.co.za>
In-reply-to
Content
The range type should implement the __contains__ method.  Currently an
expression like 'x in range(10000000)' will iterate through every item
in the range (exiting when an item tests true for equality); this is
highly unnecessary as the following expression will perform the same
function in a fraction of the time:

value >= start and value < stop and (value - start) % step == 0

The biggest advantage of this modification would be to allow users to say:

if foo in range(lower, upper):
   bar()

instead of:

if foo >= lower and foo < upper:
   bar()

safe in the knowledge that they are losing no performance.  The former
is also far more Pythonic in my opinion :).

If there is still any doubt (which I doubt), I have attached an example
script showing what is to be gained.
History
Date User Action Args
2009-09-02 20:49:20hpesojsetrecipients: + hpesoj
2009-09-02 20:49:20hpesojsetmessageid: <1251924560.8.0.143337742055.issue6826@psf.upfronthosting.co.za>
2009-09-02 20:49:19hpesojlinkissue6826 messages
2009-09-02 20:49:18hpesojcreate