[Python-Dev] Behaviour of max() and min() with equal keys
Mark Dickinson
dickinsm at gmail.com
Wed Sep 8 00:00:21 CEST 2010
On Tue, Sep 7, 2010 at 10:51 PM, Mark Dickinson <dickinsm at gmail.com> wrote:
> On Tue, Sep 7, 2010 at 10:47 PM, Jeffrey Yasskin <jyasskin at gmail.com> wrote:
>> 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.
Ah. I'd forgotten that the Decimal max and min methods are context
aware, so that max(x, y) is rounded to the current context, and hence
can actually be different from both x and y. So that was a bad
example from me. Sorry.
>>> from decimal import *
>>> getcontext().Emin = -500
>>> x, y = Decimal('-1e-100'), Decimal('-1e-1000')
>>> x.max(y)
Decimal('-0E-527')
Mark
More information about the Python-Dev
mailing list