[Python-ideas] dict.merge(d1, d2, ...) (Counter proposal for PEP 584)

Terry Reedy tjreedy at udel.edu
Thu Mar 21 21:36:20 EDT 2019


On 3/21/2019 12:11 PM, Guido van Rossum wrote:
> On Thu, Mar 21, 2019 at 7:45 AM Antoine Pitrou 
>>     One should also be able to write `d = dict.merge(d1, d2, ...)`
> 
>     If dict merging is important enough to get a new spelling, then I think
>     this proposal is the best: explicit, unambiguous, immediately
>     understandable and easy to remember.
> 
> 
> I don't find it easy to understand or remember that d1.update(d2) 
> modifies d1 in place, while d1.merge(d2) first copies d1.
> 
> Maybe the name can indicate the copying stronger? Like we did with 
> sorting: l.sort() sorts in-place, while sorted(l) returns a sorted copy.

I counted what I believe to be 10 instances of copy-update in the top 
level of /lib.  Do either of you consider this to be enough that any 
addition would be worthwhile.

There are 3 in idlelib that I plan to replace with {**a, **b} and be 
done with the issue.  I did not check any other packages.

-- 
Terry Jan Reedy



More information about the Python-ideas mailing list