Python 3.x Python3-将字典与现有键值对组合
所以。。。我知道我们可以组合python 3.5中的两个字典,如下所示: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
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