Python:itertools模块-g
groupby(iterable [,key]):
创建一个迭代器,对iterable生成的连续项进行分组,在分组过程中会查找重复项。
如果iterable在多次连续迭代中生成了同一项,则会定义一个组,如果将此函数应用一个分类列表,那么分组将定义该列表中的所有唯一项,key(如果已提供)是一个函数,应用于每一项,如果此函数存在返回值,该值将用于后续项而不是该项本身进行比较,此函数返回的迭代器生成元素(key, group),其中key是分组的键值,group是迭代器,生成组成该组的所有项。
下面是一个例子:
from itertools import groupby
from operator import itemgetter
> things=[('2014-05-21',11),('2014-05-21',3),('2014-05-22',10),('2014-05-22',4),('2014-05-22',22),('2014-05-23',33)]
>>> for key,items in groupby(things,itemgetter(0)):
... print key
... for subitem in items:
... print subitem
... print '-'*20
显示结果如下:
2014-05-21
('2014-05-21', 11)
('2014-05-21', 3)
--------------------
2014-05-22
('2014-05-22', 10)
('2014-05-22', 4)
('2014-05-22', 22)
--------------------
2014-05-23
('2014-05-23', 33)
--------------------
相关文章