【发布时间】:2022-12-18 08:33:43
【问题描述】:
我有一个包含字典的列表:
start_queue = [{"ticket": "INC1", "vmname": "testapp01", "status": "online"},
{"ticket": "INC2", "vmname": "demo02", "status": "remove"},
{"ticket": "INC2", "vmname": "demo03", "status": "remove"},
{"ticket": "INC2", "vmname": "demo04", "status": "remove"},
{"ticket": "INC3", "vmname": "dev05", "status": "remove"},
{"ticket": "INC3", "vmname": "dev06", "status": "remove"}]
我正在尝试组合这些值以最终处于这种状态:
final_queue = [{"ticket": "INC1", "vmname": ["testapp01"], "status": ["online"]},
{"ticket": "INC2", "vmname": ["demo02","demo3","demo4"], "status": ["remove","remove","remove"]},
{"ticket": "INC3", "vmname": ["dev05", "dev6"], "status": ["remove", "remove"]}]
我研究过像这样使用默认字典:
tmp_dict = {}
for item in start_queue:
tmp_dict.setdefault(item['ticket', []).append(item['vmname'])
final_queue = [{'ticket': k, 'vmname': v} for k,v in tmp_dict.items()}]
但是 .setdefault 只接受两个参数并输出两个。我找不到包含我的“状态”键/值的方法。如何合并此列表以获得最终结果?
【问题讨论】:
标签: python python-3.x