[Python-ideas] Implement comparison operators for range objects
Raymond Hettinger
raymond.hettinger at gmail.com
Thu Oct 13 06:27:21 CEST 2011
More information about the Python-ideas mailing list
Thu Oct 13 06:27:21 CEST 2011
- Previous message: [Python-ideas] Implement comparison operators for range objects
- Next message: [Python-ideas] Implement comparison operators for range objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Oct 12, 2011, at 12:36 PM, Sven Marnach wrote: > Steven D'Aprano schrieb am Do, 13. Okt 2011, um 04:33:49 +1100: >>> When implementing '==' and '!=' for range objects, it would be natural >>> to implement the other comparison operators, too (lexicographically, >>> as for all other sequence types). >> >> I don't agree. Equality makes sense for ranges: two ranges are equal >> if they have the same start, stop and step values. > > No, two ranges should be equal if they represent the same sequence, > i.e. if they compare equal when converted to a list: > > range(0) == range(4, 4, 4) > range(5, 10, 3) == range(5, 11, 3) > range(3, 6, 3) == range(3, 4) Given that there are two reasonably valid interpretations of equality (i.e. produces-equivalent-sequences or the stronger condition, has-an-equal-start/stop/step-tuple), we should acknowledge the ambiguity and refuse the temptation to guess. I vote for not defining equality for range objects -- it's not really an important service anyway (you really can live without it). Instead, let people explicitly compare the raw components, or if desired, compare components normalized by a slice: >>> range(2, 9, 2)[:] range(2, 10, 2) Raymond -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20111012/11d6775c/attachment.html>
- Previous message: [Python-ideas] Implement comparison operators for range objects
- Next message: [Python-ideas] Implement comparison operators for range objects
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list