min/max: "stable" invariant?

Giovanni Bajo rasky at develer.com
Tue Mar 11 19:09:03 EDT 2008


Hello,

assuming that a sequence contains multiple elements with minimum/maximum 
value, do min/max guarantee to return the *first* element in the sequence 
among those?

Example:

>>> class A:
...     def __init__(self, x): self.x = x
... 
>>> L = [A(0), A(1), A(2), A(0)]
>>> min(L, key=lambda a:a.x) is L[0]
True
>>> min(L, key=lambda a:a.x) is L[3]
False

Is this guaranteed by the Python language formal specification?
Is this guaranteed to always by true in CPython? (I guess so)

I can't find any mention in the documentation.
-- 
Giovanni Bajo



More information about the Python-list mailing list