itertools模块的使用:

# coding=utf-8

"""
itertools模块
""" import itertools
import unittest class TestItertools(unittest.TestCase): def test_count(self):
"""itertools.count()无限产生自然数"""
natuals = itertools.count(1, 1)
res = 0
for r in natuals:
if r == 10:
res = r
break
self.assertEqual(10, res) def test_cycle(self):
"""itertools.cycle()无限重复序列里面的值"""
my_list = "ABC"
result = []
for num, res in enumerate(itertools.cycle(my_list)):
result.append(res)
if num == 5:
break
self.assertEqual(['A','B','C','A','B','C'], result) def test_repeat(self):
"""itertools.repeat('A',3) 重复A 3次"""
result = [res for res in itertools.repeat('ABC', 3)]
self.assertEqual(['ABC', 'ABC', 'ABC'], result) def test_takewhile(self):
"""itertools.takewhile()截取一个有限的序列"""
natuals = itertools.count(0)
result = itertools.takewhile(lambda x : x <= 5, natuals)
self.assertEqual([0, 1, 2, 3, 4, 5], list(result)) def test_chain(self):
"""itertools.chain()将两个迭代对象组成一个迭代对象"""
iter1 = ['A','B']
iter2 = 'CCC'
result = itertools.chain(iter1, iter2)
self.assertEqual(['A', 'B', 'C', 'C', 'C'], list(result)) def test_groupby(self):
"""groupby()把迭代器中相邻的重复元素挑出来放在一起"""
text = "AAAAAACCCCDDDDMMM"
result = {key : list(val) for key, val in itertools.groupby(text)}
self.assertEqual(['M', 'M', 'M'], result['M']) if __name__ == '__main__':
unittest.main()

python,itertools模块的更多相关文章

  1. 转:Python itertools模块

    itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个"无限"迭代器: >>& ...

  2. python, itertools模块

    通过itertools模块,可以用各种方式对数据进行循环操作 1, chain() from intertools import chain for i in chain([1,2,3], ('a', ...

  3. python itertools 模块

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数 首先,我们看看itertools提供的几个“无限”迭代器: >>> import itertools ...

  4. python itertools 模块讲解

    1.介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存. 使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环. - 无限迭代器 itertool ...

  5. python itertools模块练习

    参考 <python标准库> 也可以参考Vamei博客 列表用着很舒服,但迭代器不需要将所有数据同时存储在内存中. 本章练习一下python 标准库中itertools模块 合并 和 分解 ...

  6. Python itertools模块详解

    这货很强大, 必须掌握 文档 链接 http://docs.python.org/2/library/itertools.html pymotw 链接 http://pymotw.com/2/iter ...

  7. [转载] Python itertools模块详解

    原文在这里,写的很详细,感谢原作者,以下摘录要点. itertools用于高效循环的迭代函数集合. 无限迭代器 迭代器 参数 结果 例子 count() start, [step] start, st ...

  8. Python itertools模块中的product函数

    product 用于求多个可迭代对象的笛卡尔积(Cartesian Product),它跟嵌套的 for 循环等价.即: product(A, B) 和 ((x,y) for x in A for y ...

  9. python itertools模块实现排列组合

    转自:https://blog.csdn.net/specter11235/article/details/71189486 一.笛卡尔积:itertools.product(*iterables[, ...

  10. Python标准模块--itertools

    1 模块简介 Python提供了itertools模块,可以创建属于自己的迭代器.itertools提供的工具快速并且节约内存.开发者可以使用这些工具创建属于自己特定的迭代器,这些特定的迭代器可以用于 ...

随机推荐

  1. js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)

    本文为大家详细介绍下使用js实现遮罩弹出层居中,且随浏览器窗口滚动条滚动,示例代码如下,感兴趣的朋友可以参考下, js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动) 下面看看我的原始代码: & ...

  2. 基于ThinkPHP的开发笔记3-登录功能(转)

    1.前台登录用的form ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <for ...

  3. asp+jquery+ajax,asp后台程序执行不正常

    项目中前台页面通过jquery .ajax功能将关键数据传递到后台并写入数据库,调试中发现后台程序一直没有正常执行,后反复排查 发现asp程序中不能包含#include file语句

  4. paste:linux合并两个文件中的列(左右合并)

    [root@www ~]# paste [-d] file1 file2 选项与参数: -d  :后面可以接分隔字符.默认是以 [tab] 来分隔的! -   :如果 file 部分写成 - ,表示来 ...

  5. fragment用法

    简单用法: 1.新建布局.新建fragment类 2.在activity_main.xml中添加fragment <LinearLayout...... <fragment android ...

  6. AngularJS:简介

    ylbtech-AngularJS:简介 1.返回顶部 1. AngularJS 简介 AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HT ...

  7. PHP传入数组到js

    1.方式一,处理成字符串 js再将字符串处理成数组. var spec1_default = "{$spec1_default}"; spec1_default = spec1_d ...

  8. Quartz 用 cron 表达式存放执行计划

    Quartz 用 cron 表达式存放执行计划.引用了 cron 表达式的 CronTrigger 在计划的时间里会与 job 关联上. 1.Quartz cron 表达式支持七个域如下: 名称 是否 ...

  9. kafka集群配置和java编写生产者消费者操作例子

    kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...

  10. Python Twisted系列教程2:异步编程初探与reactor模式

    作者:dave@http://krondo.com/slow-poetry-and-the-apocalypse/  译者:杨晓伟(采用意译) 这个系列是从这里开始的,欢迎你再次来到这里来.现在我们可 ...