gpt4 book ai didi

python - 我正在使用 python3,其中有字典列表

转载 作者:行者123 更新时间:2023-12-01 01:39:43 26 4
gpt4 key购买 nike

我有以下字典列表,其中包含 job_name、count 和城市名称

question = [{
"count": 2,
"city": "Pune",
"job_NAME": "clerk"
}, {
"count": 1,
"city": "kolkata",
"job_NAME": "manager"
}, {
"count": 2,
"city": "Mumbai",
"job_NAME": "accountant"
}, {
"count": 1,
"city": "New Delhi",
"job_NAME": "clerk"
}]

我想要的是,如果 job_name 在本例中与“clerk”相同,则计数和城市必须位于键“jobs”下的一个列表中

   answer = [{
"job_name": "clerk",
"jobs": [{
"city": "pune",
"count": 2
}, {
"city": "New Delhi",
"count": 1
}]
}, {
"job_name": "manager",
"jobs": [{
"city": "kolkata",
"count": 1
}]
}, {
"job_name": "accountant",
"jobs": [{
"city": "Mumbai",
"count": 2
}]
}]

如果在这种情况下问题列表中存在任何重复的工作资料,则应将其所在城市和计数附加到“工作”关键列表中。

我将非常感谢您提供的任何帮助!

提前致谢

最佳答案

使用collections.defaultdict

例如:

from collections import defaultdict

d = defaultdict(list)
question = [{'count': 2, 'city': 'Pune', 'job_NAME': 'clerk'}, {'count': 1, 'city': 'kolkata', 'job_NAME': 'manager'}, {'count': 2, 'city': 'Mumbai', 'job_NAME': 'accountant'}, {'count': 1, 'city': 'New Delhi', 'job_NAME': 'clerk'}]

for i in question:
d[i["job_NAME"]].append({"city": i["city"], "count": i["count"]})

answer = [{"job_name": k, "jobs": v} for k, v in d.items()]
print(answer)

输出:

[{'job_name': 'clerk',
'jobs': [{'city': 'Pune', 'count': 2}, {'city': 'New Delhi', 'count': 1}]},
{'job_name': 'accountant', 'jobs': [{'city': 'Mumbai', 'count': 2}]},
{'job_name': 'manager', 'jobs': [{'city': 'kolkata', 'count': 1}]}]

关于python - 我正在使用 python3,其中有字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52016555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com