Python 3.x Python3-将字典与现有键值对组合

Python 3.x Python3-将字典与现有键值对组合,python-3.x,dictionary,Python 3.x,Dictionary,所以。。。我知道我们可以组合python 3.5中的两个字典,如下所示: z = {**x,**y} # x,y are 2 similar dictionaries, with nested entries 但在这种方法中,“x”中任何冲突的键、值对都将替换为“y”中的键、值对 我希望冲突的键、值对包含x或y中存在的最大数据 例如: x = {1:'small_data',2:{1:'random laaaarge data',2:'random small

所以。。。我知道我们可以组合python 3.5中的两个字典,如下所示:

z = {**x,**y}                  # x,y are 2 similar dictionaries, with nested entries
但在这种方法中,“x”中任何冲突的键、值对都将替换为“y”中的键、值对

我希望冲突的键、值对包含x或y中存在的最大数据

例如:

x = {1:'small_data',2:{1:'random laaaarge data',2:'random small data'}}
y = {1:'laaaaaarge_data',2:{1:'random small data',2:'random laaaarge data'}}
现在

注意:它应该适用于任何具有特定大小的任意数据


这可能吗?如果是这样的话,那么什么是最具蟒蛇风格的方式。

为什么不选择以下方式:

def merge_dicts(dict_list):
    merged = {}
    for sub_dict in dict_list:
        for key, value in sub_dict.items():
            if key in merged:
                merged[key] = get_biggest(merged[key], value)
            else:
                merged[key] = value
    return merged

def get_biggest(*items):
    # function for comparing your 2 items based on your "size" requirements
    return biggest

这不适用于将嵌套字典作为值的复杂字典。那么,您需要更具体地了解您的用例。您可以使比较函数任意复杂。如果这是您试图解决的问题,您需要编辑您的问题以反映这一点。
def merge_dicts(dict_list):
    merged = {}
    for sub_dict in dict_list:
        for key, value in sub_dict.items():
            if key in merged:
                merged[key] = get_biggest(merged[key], value)
            else:
                merged[key] = value
    return merged

def get_biggest(*items):
    # function for comparing your 2 items based on your "size" requirements
    return biggest