python的语法类似于lodash分组展开,合并分组操作
from functools import reduce
from pydantic import BaseModel
from dataclasses import dataclass
a = {
"class1": [{"id": 1, "name": "马良"}, {"id": 2, "name": "李四"}],
"class2": [{"id": 3, "name": "马青"}, {"id": 4, "name": "王杰"}],
"class3": [{"id": 5, "name": "赵六"}, {"id": 6, "name": "孙七"}],
}
a1 = [
{"id": 1, "class": "class1", "name": "马良"},
{"id": 2, "class": "class1", "name": "李四"},
{"id": 3, "class": "class2", "name": "马青"},
{"id": 4, "class": "class2", "name": "王杰"},
{"id": 5, "class": "class3", "name": "赵六"},
{"id": 6, "class": "class3", "name": "孙七"},
]
b = [{**item, "class": key} for key, values in a.items() for item in values]
def myAdd(x, y):
if x.get(y["class"]):
x[y["class"]].append(y)
else:
x[y["class"]] = [y]
return x
b1 = reduce(myAdd, a1, {})
print(b1)
漫思
浙公网安备 33010602011771号