You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何合并多个键相同、值不同的字典?

实现方案

你可以按照公共字段Question__questions对字典分组,将需要聚合的option、is_correct_answer字段值收集为列表,固定不变的公共字段直接复用即可,以下是两种适用不同场景的实现方式:

单题目场景(当前输入仅包含一道题)

代码逻辑简单,直接遍历收集聚合字段即可:

# 输入的字典列表
input_list = [
    {
        'Question__questions': 'What is Python?',
        'option': 'Front-end Language',
        'imagesOptions': '',
        'is_correct_answer': 'False'
    },
    {
        'Question__questions': 'What is Python?',
        'option': 'Backend-end Language',
        'imagesOptions': '',
        'is_correct_answer': 'True'
    },
    {
        'Question__questions': 'What is Python?',
        'option': 'Both',
        'imagesOptions': '',
        'is_correct_answer': 'False'
    },
    {
        'Question__questions': 'What is Python?',
        'option': 'None',
        'imagesOptions': '',
        'is_correct_answer': 'False'
    }
]

if input_list:
    # 初始化结果,复用公共字段
    res = {
        "Question__questions": input_list[0]["Question__questions"],
        "imagesOptions": input_list[0]["imagesOptions"],
        "option": [],
        "is_correct_answer": []
    }
    for item in input_list:
        res["option"].append(item["option"])
        res["is_correct_answer"].append(item["is_correct_answer"])
    output = [res]

print(output)

运行后输出完全符合你的预期格式。

多题目通用场景(支持同时处理多道不同题目)

如果后续输入列表包含多道不同的题目,可使用分组映射的方式自动按题目聚合:

from collections import defaultdict

def merge_question_dict(input_list):
    # 以题目内容为键做分组
    group_map = defaultdict(lambda: {"option": [], "is_correct_answer": []})
    for item in input_list:
        q_key = item["Question__questions"]
        # 公共字段仅赋值一次
        if "Question__questions" not in group_map[q_key]:
            group_map[q_key]["Question__questions"] = item["Question__questions"]
            group_map[q_key]["imagesOptions"] = item["imagesOptions"]
        # 收集聚合字段
        group_map[q_key]["option"].append(item["option"])
        group_map[q_key]["is_correct_answer"].append(item["is_correct_answer"])
    # 转为列表格式返回
    return list(group_map.values())

output = merge_question_dict(input_list)
print(output)

内容的提问来源于stack exchange,提问作者Wasim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:36:03