Hi, I've posted this patch on Source forge :
http://sourceforge.net/tracker/index.php?func=detail&aid=1391204&group_id=5470&atid=305470 If you want to update a dictionary with another one, you can simply use update : a = dict(a=1,c=3) b = dict(a=0,b=2) a.update(b) assert a == dict(a=0,b=2,c=3) However, sometimes you want to merge the second dict into the first, all while keeping the values that are already defined in the first. This is useful if you want to insert default values in the dictionary without overriding what is already defined. Currently this can be done in a few different ways, but all are awkward and/or inefficient : a = dict(a=1,c=3) b = dict(a=0,b=2) Method 1: for k in b: if k not in a: a[k] = b[k] Method 2: temp = dict(b) temp.update(a) a = temp This patch adds a merge() method to the dict object, with the same signature and usage as the update() method. Under the hood, it simply uses PyDict_Merge() with the override parameter set to 0 instead of 1. There's nothing new, therefore : the C API already provides this functionality (though it is not used in the dictobject.c scope), so why not expose it ? The result is : a = dict(a=1,c=3) b = dict(a=0,b=2) a.merge(b) assert a == dict(a=1,b=2,c=3) Does this seem a good idea to you guys ? Regards, Nicolas -- http://mail.python.org/mailman/listinfo/python-list