I really like this idea. It’s not obvious how to deal with key conflicts
and I don’t think replacing by the keys of the second dict is that
obviously a good behaviour. With the actual merging ({**d1, **d2}) it works
the same as when you build a custom dict so it’s usually known by people.
If we add a new syntax/function, we might think of better behaviors.

IMO, and I might be wrong, merging two mapping having common keys is an
error. Thus we would need a clean way to combine two dicts. A simple way
could be adding a key function that takes the values of each merged dict
and returns the new value :

d1 = ...
d2 = ...

d1.merge(d2, key=lambda values: values[0])

That’s an example, I don’t like the syntax.

On Fri 1 Mar 2019 at 07:09, fhsxfhsx <fhsxf...@126.com> wrote:

> Considering potential ambiguity, I suggest `d1.append(d2)` so we can have
> an additional argument saying `d1.append(d2, mode="some mode that tells how
> this function behaviours")`.
> If we are really to have the new syntax `d1 + d2`, I suggest leaving it
> for `d1.append(d2, mode="strict")` which raises an error when there're
> duplicate keys. The semantics is nature and clear when two dicts have no
> overlapping keys.
>
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to