[Python-Dev] Behaviour of max() and min() with equal keys
raymond.hettinger at gmail.com
Wed Sep 8 08:59:21 CEST 2010
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) and nsmallest(1, it).
The same goes for max(it) paralleling sorted(it,reverse=True)
and nlargest(1, it).
More information about the Python-Dev