惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
月光博客
月光博客
IT之家
IT之家
B
Blog RSS Feed
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
博客园_首页
B
Blog
V
V2EX
腾讯CDC
Vercel News
Vercel News
量子位
Microsoft Security Blog
Microsoft Security Blog

博客园 - 漫思

python使用.env构建开发和生产环境 python项目的构建 nodejs构建CICD时的思考  成为 AI 智能体工程师的 10 个步骤 es6的 yield python 中的 yield 笔记本的A壳 thinkpad 更换 reduce() in Python python的字段赋值和取值的操作 SelectMany C# lodash 数组的常用做法 lodash里面的常用方法 技术的边界 Reduce 和 Transduce 的含义 尤雨溪创办的 VoidZero 官宣加入 Cloudflare,前端 Vite 等保持开源 Ramda 函数库参考教程 ramda es 数组的方法 flatmap map object.entity的教程 Map与FlatMap:在数据处理中的区别与联系 flat、flatmap与map的用法区别1 flat、flatmap与map的用法区别 AI不是从天而降,它经历了七十年三起三落:读懂AI的第三课 Agent 17 种架构模式 分析 & 思考 只有踩过坑才懂:前端生成唯一 ID,别用 Date.now ()了!试试它crypto.randomUUID() FastAPI python并发 代码是 AI 写的,生产事故谁背锅? AI Agent 走出 Demo 幻觉的唯一解药:Harness Engineering 高管的 AI 精神病
python的语法类似于lodash分组展开,合并分组操作
漫思 · 2026-06-10 · via 博客园 - 漫思

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)