python,itertools模块
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模块的更多相关文章
- 转:Python itertools模块
itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个"无限"迭代器: >>& ...
- python, itertools模块
通过itertools模块,可以用各种方式对数据进行循环操作 1, chain() from intertools import chain for i in chain([1,2,3], ('a', ...
- python itertools 模块
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数 首先,我们看看itertools提供的几个“无限”迭代器: >>> import itertools ...
- python itertools 模块讲解
1.介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存. 使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环. - 无限迭代器 itertool ...
- python itertools模块练习
参考 <python标准库> 也可以参考Vamei博客 列表用着很舒服,但迭代器不需要将所有数据同时存储在内存中. 本章练习一下python 标准库中itertools模块 合并 和 分解 ...
- Python itertools模块详解
这货很强大, 必须掌握 文档 链接 http://docs.python.org/2/library/itertools.html pymotw 链接 http://pymotw.com/2/iter ...
- [转载] Python itertools模块详解
原文在这里,写的很详细,感谢原作者,以下摘录要点. itertools用于高效循环的迭代函数集合. 无限迭代器 迭代器 参数 结果 例子 count() start, [step] start, st ...
- Python itertools模块中的product函数
product 用于求多个可迭代对象的笛卡尔积(Cartesian Product),它跟嵌套的 for 循环等价.即: product(A, B) 和 ((x,y) for x in A for y ...
- python itertools模块实现排列组合
转自:https://blog.csdn.net/specter11235/article/details/71189486 一.笛卡尔积:itertools.product(*iterables[, ...
- Python标准模块--itertools
1 模块简介 Python提供了itertools模块,可以创建属于自己的迭代器.itertools提供的工具快速并且节约内存.开发者可以使用这些工具创建属于自己特定的迭代器,这些特定的迭代器可以用于 ...
随机推荐
- c#实现QQ群成员列表导出及邮件群发开篇
主题已迁移至:http://atiblogs.com/ ITO-神奇的程序员
- FPGA应用及ARM-FPGA架构举例
FPGA的应用非常广泛,通信领域,视频图像处理领域,汽车电子领域,消费电子领域,工业领域,数据处理领域等,都能看到FPGA的身影. 在设计中,FPGA通常和其他处理IC架构,完成整个设计.FPGA-A ...
- 【转】理解JMeter聚合报告(Aggregate Report)
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...
- 【转】使用Jmeter测试Webservice简单示例
1.webservice 先简单开发webservice,参考文档 http://www.cnblogs.com/xwdreamer/archive/2011/12/07/2296914.html w ...
- Java-API-Package:java.net百科
ylbtech-Java-API-Package:java.net百科 并非所有系统都支持 IPv6 协议,而当 Java 网络连接堆栈尝试检测它并在可用时透明地使用它时,还可以利用系统属性禁用它.在 ...
- PHP 获取指定日期的星期几的方法
<?php header("Content-type: text/html; charset=utf-8"); //获取星期方法 function get_week($dat ...
- 关系数据库域关系演算语言QBE
QBE: Query By Example 基于屏幕表格的查询语言 查询要求:以填写表格的方式构造查询 用示例元素(域变量)来表示查询结果可能的情况 查询结果:以表格形式显示 QBE操作框架 ...
- highcharts钻取例子
<!doctype html> <html lang="en"> <head> <script type="text/javas ...
- 优化深度神经网络(一) dropout 初始化
Coursera吴恩达<优化深度神经网络>课程笔记(1)-- 深度学习的实用层面 1. Train/Dev/Test sets 训练集(Training sets).验证集(Develo ...
- 可重复使用Tab切换代码和纯js代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...