python数组随机分组_Python实用黑科技——以某个字段进行分组
需求:
当前有个字典实例,你想以某个字段比如”日期”对整个字典里面的元素进行分组。
方法:
itertools.groupby()函数是专门用来干这个活的。请看下面这个例子,这里有一个列表构成的字典,你想按照日期来对列表进行分组,可以这么做:
In [42]: from operator import itemgetter
In [43]: from itertools import groupby
In [44]: rows = [
...: {'address' : '5412 N CLARK', 'date' : '07/01/2012'},
...: {'address' : '5148 N CLARK', 'date' : '07/04/2012'},
...: {'address' : '5800 E 58TH', 'date' : '07/02/2012'},
...: {'address' : '2122 N CLARK', 'date' : '07/03/2012'},
...: {'address' : '5645 N RAVENSWOOD', 'date' : '07/02/2012'},
...: {'address' : '1060 W ADDISION', 'date' : '07/02/2012'},
...: {'address' : '4801 N BROADWAY', 'date' : '07/01/2012'},
...: {'address' : '1039 W GRANVILLE', 'date' : '07/04/2012'}
...: ]
In [45]: rows.sort(key=itemgetter('date'))
In [46]: for date, items in groupby(rows, key=itemgetter('date')):
...: print(date)
...: for i in items:
...: print(' ', i)
...:
07/01/2012
{'address': '5412 N CLARK', 'date': '07/01/2012'}
{'address': '4801 N BROADWAY', 'date': '07/01/2012'}
07/02/2012
{'address': '5800 E 58TH', 'date': '07/02/2012'}
{'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'}
{'address': '1060 W ADDISION', 'date': '07/02/2012'}
07/03/2012
{'address': '2122 N CLARK', 'date': '07/03/2012'}
07/04/2012
{'address': '5148 N CLARK', 'date': '07/04/2012'}
{'address': '1039 W GRANVILLE', 'date': '07/04/2012'}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
扩展:
实用groupby()函数前,必须对相应的要分组的字段进行排序,因为他只能对有序数据进行分组。如果你仅仅只是想针对日期进行分组并且允许随机获取,那可能更好的方法是实用defaultdict()先产生一个多维字典,例如:
In [48]: from collections import defaultdict
In [49]: rows_by_date = defaultdict(list)
In [50]: for row in rows:
...: rows_by_date[row['date']].append(row)
...:
In [51]: for r in rows_by_date['07/01/2012']:
...: print(r)
...:
{'address': '5412 N CLARK', 'date': '07/01/2012'}
{'address': '4801 N BROADWAY', 'date': '07/01/2012'}
对于这个例子,并不需要先对记录进行排序。因此如果不需要考虑内存,用这个方法比用groupby()要快得多。
————————————————
python数组随机分组_Python实用黑科技——以某个字段进行分组相关推荐
- 缺氧游戏黑科技计算机,缺氧实用黑科技研究分享
缺氧实用黑科技研究分享 2017-07-18 来源:游侠 作者:未知 缺氧随着温度与植物机制变化,生存变得越来越不易,而在游戏中除了常规的玩法之外,还有些实用的黑科技能帮大家轻松生存,今天小编就为大家 ...
- 使用华为手机!不知道这5个实用黑科技,几千块钱就白花了
国产手机要说谁的用户最多,那肯定就是华为了,很多小伙伴换机第一选择就是华为手机. 但使用华为手机!不知道这5个实用黑科技,那就几千块钱都白花了. 一.实用黑科技 1.手机克隆 如何快速将旧手机的数据转 ...
- python学到了什么_Python这个黑科技,后悔没有早点学起来!
前段时间听说了一件事,彻底刷新了我对"黑科技"的认知. 有一个96年的小学弟,大学4年混得风生水起,恋爱.赚钱.写论文.找工作,样样都很顺利,简直是妥妥的人生赢家. 问他凭什么?张 ...
- python数组数字求和_python数组求和
Pandas是Python的一个大数据处理模块.Pandas使用一个二维的数据结构DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失 ...
- python可以实现什么黑科技_实用黑科技!利用python给手机发短信
之前告诉大家使用python可以应用于很多场景,除了大家所知道的,今天给大家带来一个特别好玩的事情,就是能用python去发短信,赶紧看下文吧~ 准备工作内容: SDK AppID.App Key.应 ...
- python刷票 黑科技_python 爬虫 黑科技
1.最基本的抓站 importurllib2 content= urllib2.urlopen('http://XXXX').read() 2.使用代理服务器 这在某些情况下比较有用,比如IP被封了, ...
- python数组求和函数_python数据分析之Numpy数据库第三期数组的运算
上期数组的索引和切片的知识总结通道:数组的索引和切片 数组和标量间的运算 数组之所以强大而且重要的原因,是其不需要通过循环就可以完成批量计算,也就是矢量化 import numpy as np a = ...
- python数组追加值_python数组追加
记linux shell的两个小技巧:shell数组和字符串判断 最近在使用shell写脚本的时候,想实现python中两个很简单的功能:1:判断一个字符串是否包含另一个字符串.2:怎么用实现pyth ...
- python概率随机抽奖_Python利用带权重随机数解决抽奖和游戏爆装备
关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管. 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还 ...
最新文章
- CSS3实战开发:使用CSS3实现photoshop的过滤效果
- 【Windows10下OpenCV 3.4.0 + Visual Studio 2015开发环境的配】
- ITK:关闭二进制图像
- delphi VCL研究之消息分发机制(转)
- 正则表达式不包含某个字符串_JMeter必知必会系列(18) JMeter正则表达式提取器疑难分析...
- 金蝶发布2021年财报:云业务同比增44.2%,继续加码研发技术创新
- 添加rabbitmq守护进程
- PostgreSQL监控指标
- 最新前端中高级面试题
- log4net 不生成日志文件的解决办法
- C++ 引用 支持多级嵌套吗
- 昆石VOS2009/VOS3000 2.1.6.00 新功能介绍目录
- 目标规划运筹学例题doc_第八章 运筹学 目标规划 案例.doc
- yarn的安装及使用教程
- 微信公众号模板消息推送,中文乱码
- 原型工具Axure:Axure的实用小技巧
- 如何降低图片kb大小?教你两个快速压缩图片大小的方法!
- SSD掉电保护也是一门艺术
- xp无法访问2012r2域计算机列表,新安装Windows 2012域控无法没有自动创建Sysvol netlogon共享--钉子-Exchange MVP...
- macOS开发入门教程 : Part 2
热门文章
- python横坐标如何显示为月份_如何显示给定两个日期之间的所有月份?
- 矢量合成和分解的法则_重点解析丨抛体运动 之 运动的合成与分解
- 八年级下册册计算机计划,粤教版(B版)信息技术八年级下册教学工作计划
- Java基础day23
- Java基础day2
- 趣学python3(1)-f前缀格式化字符串文本
- .net随笔-vb.net打开外部程序发送键盘信号(3)
- 【机器学习】小数据集怎么上分? 几行代码生成伪标签数据集
- 【NLP】完全解析!Bert Transformer 阅读理解源码详解
- 【限时】推荐算法工程师培养计划