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. 配置linux下面python的开发环境

    1.首先安装Python开发环境 http://blog.csdn.net/testcs_dn/article/details/51253365 2.安装django开发环境 http://blog. ...

  2. ④SpringBoot之thymeleaf使用

    本文介绍SpringBoot使用的模板技术thymeleaf以及通过webJar进行前端资源的引入以及使用thymeleaf介绍简单说, Thymeleaf 是一个跟 Velocity.FreeMar ...

  3. 如何开启 FastAdmin 的顶部导航功能?

    如何开启 FastAdmin 的顶部导航功能? FastAdmin 默认的是侧边导航,但是如果功能多的时候就有会眼花缭乱,使用顶部导航就会清晰很多. 好消息现在已经支持顶部导航,可以在demo.fas ...

  4. 程序4-4 chmod函数实例

    //http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...

  5. 【转】Jmeter压力测试模拟并发

    jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi JMeterPlugins(jmeter插件):http://jmeter-plugin ...

  6. java代码做repeat次运算,从键盘输入几个数,比最值

    总结:今天这个题目有点灵活,因为它不但要求输出结果,还要进行几次相同的输入,不退出循环 import java.util.Scanner; //从键盘一次输入更多的数,然后把每一次的数进行---可比较 ...

  7. 实用webpack-dev-server

    webpack-dev-server的作用 文件作出改动之后,保存,立即开始编译文件 编译后的文件是保存在内存中的,在项目文件夹中看不到编译后的文件 编译完成之后立即自动刷新浏览器 测试webpack ...

  8. sourceTree免密码校验

    1.ssh请求:参考:http://www.ithao123.cn/content-1584888.html 步骤1:检查你的电脑上是否已经生成了SSH Key 在git bash下执行如下命令 cd ...

  9. K12(在线学习的平台)

    项目:K12(在线学习的平台) 一.背景 目的是做一个在线的学习平台,提高学生的课程完成度 K12:大目标是要取代线下班 - 录制专门的视频 - 导师的监管:如果没有主动和那个学生聊天,就扣钱 - 学 ...

  10. GridView导出成Excel字符"0"丢失/数字丢失的处理方式 收藏

    GridView导出成Excel字符"0"丢失/数字丢失的处理方式 收藏 GridView 导出成Excel文件,这个代码在网上比较多.但是发现存在一个问题,导出的数据中如果有&q ...