如何将具有相同键的字典的值合并到字典列表中的值?

2024-09-29 21:49:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典列表,如下所示

description = [{"category": "emergency", "meds": [{"drug": "mild", "env": "cold"}]},
               {"category": "normal", "meds": [{"drug": "slow", "env": "normal"}]},
               {"category": "emergency", "meds": [{"drug": "severe", "env": "hot"}]},
               {"category": "medium", "meds": [{"drug": "drowsy", "env": "normal"}]},
               {"category": "normal", "meds": [{"drug": "mild", "env": "normal"}]}]

如您所见,对于类别键,emergencynormal出现两次。现在我想要的是将这两个键的值合并为一个,如下所示

description_collapsed = [{"category": "emergency", "meds": [{"drug": "mild", "env": "cold"}, {"drug": "severe", "env": "hot"}]},
               {"category": "normal", "meds": [{"drug": "slow", "env": "normal"}, {"drug": "mild", "env": "normal"}]},
               {"category": "medium", "meds": [{"drug": "drowsy", "env": "normal"}]}]

我试过这样做

description_collapsed = {}
for i in description:
    if description_collapsed.get(i["category"]):
        description_collapsed.get(i["meds"].extend(i["meds"]))
    else:
        description_collapsed[i["category"]] = i["meds"]

但我只为每个类别的meds键找到了一本字典

如何获得所需的输出


Tags: env字典descriptionmediumnormalslowcategoryhot
1条回答
网友
1楼 · 发布于 2024-09-29 21:49:53

i['meds']不是description_collapses的键。规则是description_collapsed.get(i["category"])的值,因此需要扩展该值

你的括号也错了

请注意,您的最终结果将是一本词典,而不是一个列表

description_collapsed = {}
for i in description:
    if i["category"] in description_collapsed:
        description_collapsed.[i["category"]].extend(i["meds"])
    else:
        description_collapsed[i["category"]] = i["meds"]

相关问题 更多 >

    热门问题