<div><div dir="auto">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. </div></div><div dir="auto"><br></div><div dir="auto">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 : </div><div dir="auto"><br></div><div dir="auto">d1 = ...</div><div dir="auto">d2 = ...</div><div dir="auto"><br></div><div dir="auto">d1.merge(d2, key=lambda values: values[0])</div><div dir="auto"><br></div><div dir="auto">That’s an example, I don’t like the syntax. </div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri 1 Mar 2019 at 07:09, fhsxfhsx <<a href="mailto:fhsxfhsx@126.com">fhsxfhsx@126.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>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")`.</div><div>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.</div></div></div><br><br><span title="neteasefooter"><p> </p></span>_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div></div>