On 29 July 2014 02:08, Guido van Rossum <guido@python.org> wrote:
In addition, dict(A, **B) is not something you easily stumble upon when your goal is "merge two dicts"; nor is it even clear that that's what it is when you read it for the first time.
All signs of too-clever hacks in my book.
I try to convince students to learn and *use* python. If I tell students to merge 2 dictionaries they have to do dict(A, **B} or {**A, **B} that seem less clear (not something you "stumble across" as Guidon says) than A + B; then we still have to tell them the rules of the operation, as usual for any operation. It does not have to be "+", could be the "union" operator "|" that is used for sets where s.update(t) is the same as s |= t ... and accordingly D = A | B | C Maybe this operator is better as this equivalence is already being used (for sets). Accordingly "union(A,B)" could do a merge operation and return the new dict(). (this then still allows people who want "+" to add the values be made happy in the long run) -Alexander