[Python-Dev] Behaviour of max() and min() with equal keys
Raymond Hettinger
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)[0] and nsmallest(1, it).
The same goes for max(it) paralleling sorted(it,reverse=True)[0]
and nlargest(1, it).
Raymond
More information about the Python-Dev
mailing list