Python:itertools模块-g

2023-01-31 05:01:08 python itertools 模块

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)

--------------------


相关文章