Python中itertools.groupby分组的使用
Python中itertools.groupby分组的使用
有时候我们需要给一个列表按照某个属性分组,可以借助groupby来实现。
比如:一下列表我想以严重程度给它分组,并求出每组的元素个数。
from itertools import groupby
from operator import itemgetter
temp_list = [
{'id': '1854', 'severity': '严重', 'title': '【数据质量管理】【稽核模板管理】新增“字符长度”和“值域”的模板类型的数据的时候页面上有报错信息造成该类型的稽核模板不能新建成功', 'status': 'active', 'openedBy': '孙良红', 'openedDate': '2019-10-10 14:21:39', 'assignedTo': '赵元鹏'}, {'id': '1938', 'severity': '严重', 'title': '【管理平台】【安全认证中心】【账号管理】应用系统管理,修改应用编号字段后,不会更新记录,会新增一条记录', 'status': 'active', 'openedBy': '洪燕', 'openedDate': '2019-10-11 10:25:24', 'assignedTo': '项坤'},
{'id': '1942', 'severity': '严重', 'title': '【管理平台】【安全认证中心】【账号管理】应用系统管理-新增一个编号相同的应用,接口报错500,页面没有任何提示信息', 'status': 'active', 'openedBy': '洪燕', 'openedDate': '2019-10-11 11:20:36', 'assignedTo': '项坤'},
{'id': '1946', 'severity': '严重', 'title': '【数据质量管理】【稽核结果管理】【详情页】稽核任务跑出来的结果不正确', 'status': 'active', 'openedBy': '孙良红', 'openedDate': '2019-10-11 11:36:16', 'assignedTo': '金飞宇'},
{'id': '2067', 'severity': '严重', 'title': '【业务中台】【模型中心】【模型管理】模型管理列表页和新增模型弹框中模型分组下拉框中没有数据', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-12 13:39:33', 'assignedTo': '汪洋'},
{'id': '2077', 'severity': '严重', 'title': '【数据中台】【IdMapping】IdMapping模板文件导入失败,后端返回字典里没有此对象类型', 'status': 'active', 'openedBy': '季峰', 'openedDate': '2019-10-12 14:17:00', 'assignedTo': '赵元鹏'},
{'id': '2081', 'severity': '严重', 'title': '【业务中台】【模型中心】【模型管理】模型管理页面,导入模型任务时,页面提示导入成功,但实际上athena_task_info表中并没有新增模型记录,页面也没有展示', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-12 14:24:22', 'assignedTo': '赵杨军'},
{'id': '2084', 'severity': '严重', 'title': '【业务中台】【模型中心】【模型管理】模型管理页面,导入非.task后缀文件时接口报500,且页面提示错误', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-12 14:32:53', 'assignedTo': '赵杨军'},
{'id': '2099', 'severity': '严重', 'title': '【业务中台】【模型中心】【算子管理】1、新增算子弹框中无法选择算子图标;2,新增算子时,上传不正确的算子附件,点击保存,接口报500,且页面没有给出友好提示;4、更新算子版本界面也有同样的问题', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-12 16:03:59', 'assignedTo': '赵杨军'},
{'id': '2108', 'severity': '严重', 'title': '【业务中台】【服务中心】【服务资源注册】新增更新说明接口报错500,Error updating database', 'status': 'active', 'openedBy': '刘丹', 'openedDate': '2019-10-12 17:29:43', 'assignedTo': '韩佳超'},
{'id': '2150', 'severity': '严重', 'title': '【业务中台】【模型中心】【自定义建模】画布中,同一数据源和同一算子连线连两次时,页面报SQL错误,应该给出友好的提示', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-14 10:41:54', 'assignedTo': '史柯'},
{'id': '2226', 'severity': '严重', 'title': '【数据质量管理】【数据质量报告】不同表中相同的字段名,应该属于不同的字段', 'status': 'active', 'openedBy': '孙良红', 'openedDate': '2019-10-14 17:00:32', 'assignedTo': '金飞宇'},
{'id': '2374', 'severity': '严重', 'title': '【业务中台】【模型中心】【模型管理】新增模型时,只填写必填项,其他字段默认为空,保存之后,save接口报500错误', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-16 11:07:54', 'assignedTo': '杨可余'},
{'id': '2406', 'severity': '严重', 'title': '【业务中台】【服务中心】【API市场】API列表数据不展示:情况一:已编目服务存在多个标签(对外发布);情况二:已编目服务存在多个标签(对外发布),再删除其他标签只留下对外发布', 'status': 'active', 'openedBy': '刘丹', 'openedDate': '2019-10-16 15:03:57', 'assignedTo': '阮小平'},
{'id': '2444', 'severity': '严重', 'title': '【数据中台】【设备资源注册】资源设备数量共计30794条,进入设备资源注册页面,出现页面崩溃', 'status': 'active', 'openedBy': '季峰', 'openedDate': '2019-10-17 14:25:12', 'assignedTo': '赵元鹏'},
{'id': '2461', 'severity': '严重', 'title': '【业务中台】【标签中心】【标签统计】标签统计页面,对象范围统计中排序方式选择‘从低到高’时,页面报错,接口报500错误', 'status': 'active', 'openedBy': '陈玲霞', 'openedDate': '2019-10-17 16:21:23', 'assignedTo': '阮小平'},
{'id': '1815', 'severity': '严重', 'title': '【业务中台】【消息中心】【消息类型管理】消息类型管理页面,点击‘推送地址配置’按钮,页面弹框报错,缺少表md_msg_application_url', 'status': 'resolved', 'openedBy': '陈玲霞', 'openedDate': '2019-10-10 09:54:51', 'assignedTo': '陈玲霞'},
{'id': '1826', 'severity': '严重', 'title': '【业务中台】【标签中心】【标签统计】对象范围统计-从低到高排序,接口获取值都为0', 'status': 'resolved', 'openedBy': '洪燕', 'openedDate': '2019-10-10 11:17:07', 'assignedTo': '洪燕'},
{'id': '1864', 'severity': '严重', 'title': '【业务中台】【标签中心】【标签分组】属性为‘无效’的标签无法加入分组', 'status': 'resolved', 'openedBy': '洪燕', 'openedDate': '2019-10-10 14:54:58', 'assignedTo': '洪燕'}]
# 第一步就是先排序按照你要分组的属性,否则分组会失败。
temp_list.sort(key=itemgetter('severity'))
# 第二步分组 得到的data值是一个迭代器,可以使用sum(1 for x in data)来统计数量,这样会降低内存消耗
res_list = []
for key, data in groupby(temp_list, key=itemgetter("severity")):
print(key,data)
res_list.append({
"item": key,
"value": sum(1 for x in data)
})
return res_list
Python中itertools.groupby分组的使用的更多相关文章
- itertools.groupby()分组字典列表
## itertools.groupby()分组字典列表数据 from operator import itemgetter from itertools import groupby student ...
- Python中的字典分组函数(groupby,itertools)
from operator import itemgetter # itemgetter用来去dict中的key,省去了使用lambda函数 from itertools import groupby ...
- Python中itertools模块
itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生成器和生成器表达式)的函数联合使用. ch ...
- python中excel数据分组处理
1.场景描述 因文本相似性热度统计(python版)需求中要根据故障类型进行分组统计,需要对excel进行分组后再分词统计,简单记录下,有需要的朋友可以直接拿走,不客气! 2.解决方案 采用panda ...
- python中itertools里的product和permutation
平时经常碰到全排列或者在n个数组中每个数组选一个值组成的所有序列等等问题,可以用permutation和product解决,很方便,所以在此mark一下吧 直接上代码 from itertools i ...
- python中 Lambda,Map,Filter,Itertools,Generator高级函数的用法
Lambda 函数 Lambda 函数是一种比较小的匿名函数--匿名是指它实际上没有函数名. Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda ...
- [PY3]——根据某个特定的字段来分组迭代访问一个字段或序列?/ itertools.groupby( )函数
问题 你有一个字典或者实例的序列,然后你想根据某个特定的字段(比如‘date’)来分组迭代访问. 解决方案 itertools.groupby( )函数 itertools.groupby(rows, ...
- python中groupby函数详解(非常容易懂)
一.groupby 能做什么? python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算! 对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下: df[ ...
- python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...
随机推荐
- lf 前后端分离 (5) 优惠券
关于优惠券 优惠券主要通过前端传回来的course_id_list 创建数据结构 首先清空操作,将所有的优惠券清空, 并将所有优惠劵放到redis中的过程 import datetime import ...
- Python Treelib 多叉树 数据结构 中文使用帮助文档
树,对于计算机编程语言来说是一个重要的数据结构.它具有广泛的应用,比如文件系统的分层数据结构和机器学习中的一些算法.这里创建了treelib来提供Python中树数据结构的高效实现. 官方文档:htt ...
- 怎么安装python3
解压 这个压缩包 2.把解压后的python文件夹所在的路径配置到环境变量 3.鼠标移动到计算机上---右键---属性----高级系统设置---环境变量,打开如下界面 4.在系统变量里选择pa ...
- Java8——jdk——java.time包
public class TestLocalDateTime { //6.ZonedDate.ZonedTime.ZonedDateTime : 带时区的时间或日期 @Test public void ...
- plantUML 安装
plantUML 安装 资源 http://www.graphviz.org/ https://graphviz.gitlab.io/_pages/Download/windows/graphviz- ...
- VIJOS-P1423 最佳路线
VIJOS-P1423 最佳路线 JDOJ 1507 https://neooj.com/oldoj/problem.php?id=1507 Description 年久失修的赛道令国际汽联十分不满. ...
- python爬虫之获取页面script里面的内容
这是网页上的script 我要获取的是00914这个数字 直接使用正则表达式即可 运行结果: 源码: import re from bs4 import BeautifulSoup from url ...
- 打开navicat 报错????
好心好意打开数据库图形化管理工具居然报错了???? 那怎么办呢????? google一下吧...... 下载两个文件 就是这两个 放入你的图形化页面的目录中 就可以正常打开了 帅不帅??? 那怎么下 ...
- 【转】TCP/IP协议——ARP详解
本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第 ...
- AI语音验证码识别
欢迎使用AI语音验证码识别v4.0程序程序调用方法:http://code.hbadmin.com/?url=http://code.hbadmin.com/demo/2118534.wav [试听] ...