[Python-ideas] Dict joining using + and +=
INADA Naoki
songofacandy at gmail.com
Fri Mar 1 08:47:23 EST 2019
>
>
> Is that an invariant you expect to apply to other uses of the +
> operator?
>
> py> x = -1
> py> x <= (x + x)
> False
>
> py> [999] <= ([1, 2, 3] + [999])
> False
>
Please calm down. I meant each type implements "sum"
in semantics of the type, in lossless way.
What "lossless" means is changed by the semantics of the type.
-1 + -1 = -2 is sum in numerical semantics. There are no loss.
[1, 2, 3] + [999] = [1, 2, 3, 999] is (lossless) sum in sequence semantics.
So what about {"a": 1} + {"a": 2}. Is there (lossless) sum in dict semantics?
* {"a": 1} -- It seems {"a": 2} is lost in dict semantics. Should it
really called "sum" ?
* {"a": 2} -- It seems {"a": 1} is lost in dict semantics. Should it
really called "sum" ?
* {"a": 3} -- It seems bit curious compared with + of sequence,
because [2]+[3] is not [5].
It looks like more Counter than container.
* ValueError -- Hmm, it looks ugly to me.
So I don't think "sum" is not fit to dict semantics.
Regards,
--
INADA Naoki <songofacandy at gmail.com>
More information about the Python-ideas
mailing list