繁体   English   中英

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

[英]How to merge values of dictionaries with same key into one from a list of dictionaries?

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

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 emergency两次出现。 现在,我想要将这两个键的值合并为一个,如下所示

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键,我只有一本字典。

如何获得所需的输出?

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"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM