# [Python-ideas] PEP: Dict addition and subtraction

Steven D'Aprano steve at pearwood.info
Thu Mar 21 22:14:51 EDT 2019

```On Thu, Mar 21, 2019 at 08:13:01PM -0400, David Mertz wrote:

> On Thu, Mar 21, 2019, 7:48 PM Steven D'Aprano <steve at pearwood.info> wrote:
[...]
> Nonetheless, if I see `dict1 + dict2` the meaning you intend in the PEP
> does not jump out as the obvious behavior. Nor even as the most useful
> behavior.

What would be the most useful behaviour for dict "addition" in your
opinion?

> Of course I could learn it and teach it, but it will always feel
> like a wart in the language.

Would that wartness be lessoned if it were spelled | or << instead?

> In contrast, once you tell me about the special object "vectorised arrays",
> `arr1 + arr2` does exactly what is expect in NumPy.

I don't know Numpy well enough to know whether that is elementwise
addition or concatenation or something else, so that example doesn't
resonate with me. I can't guess what you expect, and I have no
confidence that my guess (matrix addition of equal-sized arrays, an
exception if unequal) will be what Numpy does.

> > And your subjective feeling is well-noted :-)
>
> This is more than "merely subjective."

If it is more than subjective, then there must be an objective test that
anyone, or a computer program, could do to tell whether or not the +
operator on dicts will be ... um, what? A wart? Ugly? Both of those are
subjective value judgements, so I'm not sure what objective claim you
believe you are making which is "more than" subjective.

The point is, I'm not *discounting* the subjective claims that + on
dicts is ugly. I've acknowledged them, and the next draft of the PEP
will do so too. But repetition doesn't make a subjective value judgement
objective.

It might boil down to a subjective preference for + over | or visa
versa, or another operator, or no operator at all. That's fine: language
design is partly subjective. But I'd like to see more comments based on
objective reasons we can agree on, and fewer arguments that boil down to
"I just don't like it".

--
Steven
```