Python:itertools模块-g

发布时间:2019-09-08 09:09:46编辑:auto阅读(1540)

    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)

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


关键字