Python--itertools包--groupby使用(分类)
来源:互联网 发布:java windows api 编辑:程序博客网 时间:2024/05/29 02:39
Python--itertools包--groupby使用(分类)
转自:http://www.cnblogs.com/vamei/p/3174796.html
groupby()
将key函数作用于原循环器的各个元素。根据key函数结果,将拥有相同函数结果的元素分到一个新的循环器。每个新的循环器以函数返回结果为标签。
这就好像一群人的身高作为循环器。我们可以使 用这样一个key函数: 如果身高大于180,返回"tall";如果身高底于160,返回"short";中间的返回"middle"。最终,所有身高将分为三个循环器, 即"tall", "short", "middle"。
from itertools import *
def height_class(h):
if h>180:
return 'tall'
elif h<160:
return 'short'
else:
return 'middle'
friends = [191, 158, 159, 165, 170, 177, 181, 182, 190]
friends = sorted(friends,key = height_class)
for m,n in groupby(friends,key = height_class):
print m
print list(n)
结果:
middle
[165, 170, 177]
short
[158, 159]
tall
[191, 181, 182, 190]
转自:http://www.cnblogs.com/vamei/p/3174796.html
groupby()
将key函数作用于原循环器的各个元素。根据key函数结果,将拥有相同函数结果的元素分到一个新的循环器。每个新的循环器以函数返回结果为标签。
这就好像一群人的身高作为循环器。我们可以使 用这样一个key函数: 如果身高大于180,返回"tall";如果身高底于160,返回"short";中间的返回"middle"。最终,所有身高将分为三个循环器, 即"tall", "short", "middle"。
from itertools import *
def height_class(h):
if h>180:
return 'tall'
elif h<160:
return 'short'
else:
return 'middle'
friends = [191, 158, 159, 165, 170, 177, 181, 182, 190]
friends = sorted(friends,key = height_class)
for m,n in groupby(friends,key = height_class):
print m
print list(n)
结果:
middle
[165, 170, 177]
short
[158, 159]
tall
[191, 181, 182, 190]
注意,groupby的功能类似于UNIX中的uniq命令。分组之前需要使用sorted()对原循环器的元素,根据key函数进行排序,让同组元素先在位置上靠拢。
转自:http://blog.csdn.net/propro1314/article/details/46740603
grouby函数类似Unix命令uniq,对相邻的重复元素进行分组。
groupby(iterable[, keyfunc]) -> create an iterator which returns (key, sub-iterator) grouped by each value of key(value).
阅读全文
0 0
- Python--itertools包--groupby使用(分类)
- Python中的分组函数(groupby、itertools)
- Python中的分组函数(groupby、itertools)
- python中itertools包无穷循环器的使用
- python itertools的使用
- python itertools的使用
- python itertools的使用
- python itertools的使用
- Python itertools的使用
- Python小技巧:使用*解包和itertools.product()求笛卡尔积
- python itertool.groupby使用误点!
- python itertools
- python itertools
- Python Itertools
- Python Itertools
- python-itertools
- python中Groupby使用(四)-通过函数进行分组
- python itertools和迭代器的使用
- 【论文阅读】 Enhancing Video Event Recognition Using Automatically Constructed Semantic-Visual Knowledge
- re.sub 功能
- zoj 1012
- 在caffe中绘制ROC曲线
- velocity.js 动画插件
- Python--itertools包--groupby使用(分类)
- 如何在Ubuntu 14.04上安装与卸载PostgreSQL
- Android调用HTML中JavaScript方法报错
- java实现华为之老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
- 三层是什么
- 从jar包还原出java源码(项目文件)
- 判断空
- 用opencv3写的超详细注释的车牌检测
- HTML5 HTML 颜色