栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python基于键的求和值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基于键的求和值

具体解决方案,不尝试巧妙:

def regroup(values):    groups = dict()    for d in values:        key = (d["prod_name"], d["prod_hola"])        if key in groups: group = groups[key] group["rashod"] += d["rashod"] group["prihod"] += d["prihod"]        else: groups[key] = d.copy()    return list(groups.values())

还有一个更通用的解决方案:

def generic_regroup(values, keys):    groups = dict()    valkeys = [k for k in values[0] if k not in key]    for d in values:        key = tuple(d[k] for k in keys)        if key in groups: group = groups[key] for k in valkeys:     group[k] += d[k]        else: groups[key] = d.copy()    return list(groups.values())results = generic_regroup(values, ("prod_name", "prod_hola"))

现在肯定有人会采用涉及itertools的更聪明的解决方案…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号