
I had started a previous thread on this, asking why there was no addition defined for dictionaries, along the line of what Peter argued a novice would naively expect. [...] I don't think that "novices would naively expect this" is correct, and even if it were, I don't think the language should be designed around what novices naively expect.
well, I had at least hoped this to work while not being a novice. Because it would be nice.
As far as I was, and still am, concerned, & is the obvious and most natural operator for concatenation. [1, 2]+[3, 4] should return [4, 6], and sum(bunch of lists) should be a meaningless operation, like sum(bunch of HTTP servers). Or sum(bunch of dicts).
This only works if the items *can* be added. Dics should not make such an assumption. & is not a more natural operator, because, why would you then not just expect that [1, 2] & [3, 4] returns [1 & 2, 3 & 4] == [0 , 0] ? the same would be true for any operator you pick. You just define that combination of dics, + or whatever operator is used, combines dicts using the update operation. This is how dicts behave.
No, that's not the argument. The argument is not that "we used the + operator to merge two dicts, so merging should + the values". The argument is that in the event of a duplicate key, adding the values is sometimes a common and useful thing to do.
... and sometimes it is not; in general it will fail. Replacing always works. -Alexander