[Python-Dev] Behaviour of max() and min() with equal keys
Mark Dickinson
dickinsm at gmail.com
Tue Sep 7 23:51:26 CEST 2010
On Tue, Sep 7, 2010 at 10:47 PM, Jeffrey Yasskin <jyasskin at gmail.com> wrote:
> Actually, Decimal isn't doing anything along these lines. At least in
> Python 2.6, I get:
>
>>>> Decimal('2').max(Decimal('2.0'))
> Decimal('2')
>>>> Decimal('2.0').max(Decimal('2'))
> Decimal('2')
>>>> Decimal('2.0').min(Decimal('2'))
> Decimal('2.0')
>>>> Decimal('2').min(Decimal('2.0'))
> Decimal('2.0')
>
> indicating that '2' is considered larger than '2.0' in the min/max
> comparison.
Right; there's a strict specification about how equal values with
different exponents (or different signs in the case of comparing
zeros) should be treated.
> It's ignoring the order of the arguments. It also creates
> a new Decimal object for the return value, so I can't use id() to
> check which one of identical elements it returns.
This bit surprises me. I honestly thought I'd fixed it up so that
max(x, y) actually returned one of x and y (and min(x, y) returned the
other). Oh well.
Mark
More information about the Python-Dev
mailing list