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. OracleAWR删除历史快照说明

    测试时,发现无法产生新快照,查看系统时间为10月26,但是已经产生快照为12月1号了. 此时的解决办法,就是删除现有的快照. 转http://itlab.idcquan.com/Oracle/back ...

  2. Python学习流程

    这是我在过去几家公司招聘到工程师,Python入职培训的过程. 时间分为4周,全部自学,仅提供大纲.适用于Web方向: 1.Week1:读完<简明Python教程>,适应Python开发环 ...

  3. mysql字段详细

    http://www.runoob.com/mysql/mysql-data-types.html

  4. (转)RadioButton左侧显示文字,右侧显示按钮时文字不靠边的问题解决

    作者:  发布日期:2014-02-13 21:00:45 我来说两句(0) 0 Tag标签:RadioButton  左侧  显示   项目中有一个这样的需求: 下面三行点击某行即选中,颜色变深.自 ...

  5. oracle11g,安装失败,提示找不到文件,win7 64位下报错

    提示: 未找到文件 E:\app\Administrator\product\11.2.0\dbhome_5\owb\external\oc4j_applications\applications\W ...

  6. elasticsearch5.6.8中文分词器

    安装分词器,务必确保版本一致! 下载地址:https://github.com/medcl/elasticsearch-analysis-ik 为了保证一致,我特地将elasticsearch进行降级 ...

  7. 巧妙的运用group,count,order有利于统计

    $aAwardMem = $this->dao_raward->getAwardAndMem($where,array('award_cat asc','award_level asc') ...

  8. Sql server 2008 R2 正在关闭[0x80041033]

    1. 事件起因, 昨天还访问的好好的, 然后系统一更新, 今天访问的时候, 就报什么 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是 ...

  9. python's fourth day for me 列表

    break 可以打断 for 循环不执行 else 语句 s = 'fdddsadwes' for i in s: if i == 's': break #可跳出for循环且不用执行else语句 pr ...

  10. Oracle T4-2用jumpstart方式安装Solaris10

    在安装过程中遇到了2个问题 1) 安装时无法识别硬RAID磁盘 T4-2的2块本地盘做了硬RAID,用jumpstart安装时无法识别硬RAID磁盘,报错信息如下: {0} ok boot net - ...