New submission from Joseph Thomson <joseph.thom...@gmail.com>: 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. ---------- components: Interpreter Core files: range.py messages: 92183 nosy: hpesoj severity: normal status: open title: Add __contains__ to range type type: performance versions: Python 3.2 Added file: http://bugs.python.org/file14821/range.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6826> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com