[Python-Dev] Behaviour of max() and min() with equal keys (original) (raw)
Raymond Hettinger raymond.hettinger at gmail.com
Wed Sep 8 08:59:21 CEST 2010
- Previous message: [Python-Dev] Behaviour of max() and min() with equal keys
- Next message: [Python-Dev] Behaviour of max() and min() with equal keys
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sep 7, 2010, at 12:34 PM, Matthew Woodcraft wrote:
In CPython, the builtin max() and min() have the property that if there are items with equal keys, the first item is returned. From a quick look at their source, I think this is true for Jython and IronPython too.
However, this isn't currently a documented guarantee. Could it be made so? (As with the decision to declare sort() stable, it seems likely that by now there's code out there relying on it anyway.)
That seems like a reasonable request. This behavior has been around for a very long time is unlikely to change. Elsewhere, we've made efforts to document sort stability (i.e. sorted(), heapq.nlargest(), heapq.nsmallest, merge(), etc).
It is nice that min(it) parallels sorted(it)[0] and nsmallest(1, it). The same goes for max(it) paralleling sorted(it,reverse=True)[0] and nlargest(1, it).
Raymond
- Previous message: [Python-Dev] Behaviour of max() and min() with equal keys
- Next message: [Python-Dev] Behaviour of max() and min() with equal keys
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]