`
mars914
  • 浏览: 430169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python itertools groubpy 实例

阅读更多

groupby(iterable [,key]):

创建一个迭代器,对iterable生成的连续项进行分组,在分组过程中会查找重复项。

如果iterable在多次连续迭代中生成了同一项,则会定义一个组,如果将此函数应用一个分类列表,那么分组将定义该列表中的所有唯一项,key(如果已提供)是一个函数,应用于每一项,如果此函数存在返回值,该值将用于后续项而不是该项本身进行比较,此函数返回的迭代器生成元素(key, group),其中key是分组的键值,group是迭代器,生成组成该组的所有项。

an example:

 

from itertools import groupby
from operator import itemgetter

things =[('2009-09-02', 'mars', 1, 11),
          ('2009-09-02', 'mars', 1, 3),
          ('2009-09-03', 'ma', 2, 10),
          ('2009-09-03', 'ma', 2, 4),
          ('2009-09-03', 'ma', 2, 22),
          ('2009-09-06', 'm', 3, 33)]

for key, items in groupby(things, itemgetter(0)):
    print key
    for subitem in items:
        print subitem
    print '-' * 20

 The output looks like:

 

2009-09-02
('2009-09-02', 'mars, 11)
('2009-09-02', 'mars', 3)
--------------------
2009-09-03
('2009-09-03', 'ma', 10)
('2009-09-03', 'ma', 4)
('2009-09-03', 'ma', 22)
--------------------
2009-09-06
('2009-09-06', 'm', 33)
-------------------

another example:
key_func = lambda t: (t[0], t[1])
for key, items in groupby(things, key_func) :
    print key
    for subitem in items:
        print subitem
    print '-' * 20
 output:
('2009-09-02', 'mars')
('2009-09-02', 'mars, 11)
('2009-09-02', 'mars', 3)
--------------------
('2009-09-03', 'ma')
('2009-09-03', 'ma', 10)
('2009-09-03', 'ma', 4)
('2009-09-03', 'ma', 22)
--------------------
('2009-09-06', 'm')
('2009-09-06', 'm', 33)
-------------------
分享到:
评论

相关推荐

    Python itertools——高效迭代.ipynb

    Python itertools——高效迭代 https://xercis.blog.csdn.net/article/details/105200310 Python内置库itertools可以高效创建一系列迭代器,使代码更简洁。本文一一讲解功能及原型,并给出具体使用

    Python itertools模块详解

    主要介绍了Python itertools模块详解,本文基本是基于文档的翻译和补充,相当于翻译了,需要的朋友可以参考下

    cppitertools, C 14的python itertools和内置迭代函数的实现.zip

    cppitertools, C 14的python itertools和内置迭代函数的实现 CPPItertools基于 python 构建和itertools库启发的循环 add-ons的范围。 itertools和Python3构建一样,这个库在可能的地方使用。注意:所有内容都在 iter...

    python itertools.pptx

    本文将介绍如何利用Itertools模块来优化Python迭代性能,并通过案例分析深入解析Itertools的工作原理。最后,我们将对Itertools优化Python迭代性能的知识点进行详细解答,以帮助读者更好地理解和应用Itertools。

    Python itertools模块笔记:迭代工具.md

    本文全面介绍了Python中的itertools模块,系统讲解了其中的常用函数分类及示例代码,并结合数据分析、数据生成、可视化等场景阐述了itertools模块在实际问题中的应用,内容结构清晰,既适合模块概念的学习,也可作为工程...

    Python itertools.product方法代码实例

    主要介绍了Python itertools.product方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python中itertools的用法详解

    循环器(iterator)是对象的容器,包含有多个对象。这篇文章主要介绍了python itertools用法,需要的朋友可以参考下

    详解python itertools功能

    itertools是python内置的模块,使用简单且功能强大,这里尝试汇总整理下,并提供简单应用示例,这篇文章主要介绍了python itertools功能,需要的朋友可以参考下

    Python中itertools模块用法详解

    本文实例讲述了Python中itertools模块用法,分享给大家供大家参考。具体分析如下: 一般来说,itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与...

    Python转换itertools.chain对象为数组的方法

    主要介绍了Python转换itertools.chain对象为数组的方法,通过代码给大家介绍了itertools 的 chain() 方法,需要的朋友可以参考下

    itertools-deno:用于Deno的Python itertools和more-itertools的TypeScript端口

    itertools Python很棒的标准库的TypeScript端口。 这是一个独立版本对于下使用环境。例子import { enumerate } from "https://deno.land/x/itertools/mod.ts" ;console . log ( [ ... enumerate ( [ "hello" , ...

    cppitertools:python itertools的实现和C ++ 17的内置迭代函数

    CPPItertools 受Python内置函数和itertools库启发的基于范围的for循环附加组件。 像itertools和Python3内置程序一样,该库在任何可能的地方都使用惰性评估。 注意:一切都在iter名称空间内。 请按照进行更新。建立和...

    详解Python中的分组函数groupby和itertools)

    主要介绍了Python中的分组函数groupby和itertools)的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

    Python使用itertools模块实现排列组合功能示例

    本文实例讲述了Python使用itertools模块实现排列组合功能。分享给大家供大家参考,具体如下: 一、笛卡尔积:itertools.product(*iterables[, repeat]) 直接对自身进行笛卡尔积: import itertools for i in ...

    Python编程使用*解包和itertools.product()求笛卡尔积的方法

    本文实例讲述了Python编程使用*解包和itertools.product()求笛卡尔积的方法。分享给大家供大家参考,具体如下: 【问题】 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = ['a', 'b'...

    详解Python的迭代器、生成器以及相关的itertools包

    主要介绍了详解Python的迭代器、生成器以及相关的itertools包,Iterators、Generators是Python的高级特性,亦是Python学习当中必会的基本知识,需要的朋友可以参考下

    Python标准库itertools的使用方法

    本文汇总整理了Python标准库itertools的使用方法,并提供简单应用示例;如果还不能满足你的要求,欢迎加入补充

Global site tag (gtag.js) - Google Analytics