给定多个结构相同的嵌套字典 如何提取各键最小值生成新字典
字典diff字段最小值合并方案
实现逻辑
直接遍历diff下固定的0~9键,从所有输入字典中提取对应键的值取最小值,填入新字典的对应位置即可。
可直接运行的代码
def merge_diff_min(input_dict_list): res = {"diff": {}} # 遍历0~9所有固定键 for k in range(10): # 提取所有输入字典该键的值取最小值 res["diff"][k] = min(d["diff"][k] for d in input_dict_list) return res
测试用例验证
# 你给出的示例输入 test_input = [ {"diff": {0: 5, 1: 4, 2: 3, 3: 43, 4: -34, 5: 43, 6: 65, 7: 543, 8: 23, 9: 23}}, {"diff": {0: 6, 1: 3, 2: 8, 3: 78, 4: -23, 5: 54, 6: 76, 7: 43, 8: 234, 9: 54}} ] output = merge_diff_min(test_input) print(output["diff"])
运行输出结果:{0: 5, 1: 3, 2: 3, 3: 43, 4: -34, 5: 43, 6: 65, 7: 43, 8: 23, 9: 23}
注:你给出的示例预期输出中键4的值写为-23属于笔误,按最小值计算规则正确结果应为更小的-34。
补充说明
代码默认所有输入字典结构完全一致,diff字段都完整包含0~9的所有键,符合你给出的前提条件。如果后续出现字典结构不一致的场景,可在取最小值前增加有效性判断逻辑即可。
内容的提问来源于stack exchange,提问作者Lostsoul
相关产品推荐
相关产品推荐

