Python itertools模块
# Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数
# 1、count()
import itertools
natuals = itertools.count(1)
# for n in natuals:
# print(n)
# 输出结果: 1,2,3.....n 的自然数,一直执行下去# 通过takewhile()等函数根据条件判断来截取出一个有限的序列
natuals2 = itertools.count(1)
ns = itertools.takewhile(lambda x: x <= 10, natuals2)
print(list(ns))
# 输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 2、cycle() 会把传入的一个序列无限重复下去:
import itertools
cs = itertools.cycle('ABC') # 注意字符串也是序列的一种
# for c in cs:
# print(c)
# 输出结果: 'A', 'B', 'C' 无限重复, 一直输出# 3、repeat()负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数
ns = itertools.repeat('A', 3)
for n in ns:print(n)# 4、chain()可以把一组迭代对象串联起来,形成一个更大的迭代器
for c in itertools.chain('ABC', 'XYZ'):print(c)
# 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z'# 5、groupby()把迭代器中相邻的重复元素挑出来放在一起
ls = []
for key, group in itertools.groupby('AAABBBCCAAA'):a = list(group)# print(type(group)) # 注意: 迭代器是循环完成之后,里面就是空的,再次循环是会报错的print(key, a)ls.append(a)
print(ls)
"""
输出结果:A ['A', 'A', 'A']B ['B', 'B', 'B']C ['C', 'C']A ['A', 'A', 'A'][['A', 'A', 'A'], ['B', 'B', 'B'], ['C', 'C'], ['A', 'A', 'A']]
"""# groupby() 里面是可以写匿名函数
for key, group in itertools.groupby('AaaBBbcCAAa', lambda x: x.upper()):print(key, list(group))"""
输出结果:A ['A', 'A', 'A']B ['B', 'B', 'B']C ['C', 'C']A ['A', 'A', 'A']
"""
Python itertools模块相关推荐
- Python -itertools模块combinations方法
itertools模块combinations(iterable, r)方法可以创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序. 例1 ...
- python itertools模块位置_Python高效编程之itertools模块详解
0 前言 说到处理循环,我们习惯使用for, while等,比如依次打印每个列表中的字符:lis = [ I , love , python ] for i in lis: print(i) I lo ...
- python itertools模块_Python标准模块--itertools
1 模块简介 Python提供了itertools模块,可以创建属于自己的迭代器.itertools提供的工具快速并且节约内存.开发者可以使用这些工具创建属于自己特定的迭代器,这些特定的迭代器可以用于 ...
- python itertools模块chain函数功能详解 itertools.chain(*iterable)
Itertools模块, itertools提供了高效快捷的用于操作迭代对象的函数.通过使用这个模块,可以简化代码. Itertools.chain语法 Itertools.chain(*iterab ...
- Python itertools 模块
Python itertools 本模块标准化了一个快速.高效利用内存的核心工具集.它们一起形成了"迭代器代数",这使得在纯 Python 中有可能创建简洁又高效的专用工具. 无穷 ...
- python itertools模块详解
目录 简介 无穷迭代器 count() cycle() repeat() 有限迭代器 chain() groupby() accumulate() 组合迭代器 product() permutatio ...
- Python itertools模块
今天学了简单好玩的模块.itertools模块,简单的说,itertools模块就是产生一个循环器 来看下这个模块的功能都有哪些吧 无穷循环器 count() 从開始的数字一直数下去 count(1 ...
- python itertools模块_Python标准库:itertools模块
来源:j_hao104 简介 官方描述:Functional tools for creating and using iterators.即用于创建高效迭代器的函数. itertools.chain ...
- python itertools模块_Python中的Itertools模块
itertools提供的工具快速且高效,为了提升代码质量及避免重复造轮子,有必要学习下. 无限迭代器 count(start=0, step=1) count迭代器以start为起点(默认0),ste ...
最新文章
- Dart中的catchError捕获顺序
- laravel debug,http模式,日志
- 中国半导体硅片行业未来发展趋势与销售规模预测报告2022版
- BZOJ 3907: 网格( 组合数 + 高精度 )
- PCIe学习笔记(15)--- TLP的ROUTING方式
- NFS调试linux内核启动卡死在DHCP和RARP上
- APPKIT打造稳定、灵活、高效的运营配置平台
- 分区取模分库分表策略:多表事务分库内闭环解决方案
- 剑指Offer之旋转数组中的最小数字(题8)
- C++ 好的博客??
- 牛客--二维数组中的查找
- 每台计算机ip地址,每台电脑均要设置IP地址,究竟什么是IP地址,到底有什么用呢?...
- python混合线性模型_Python Statsmodels Mixedlm(混合线性模型)随机效应
- JS 大陆香港台湾手机格式校验
- 台式计算机的打印机端口,台式电脑怎么连接网络打印机
- 更适合运动的耳机,设计时尚轻巧好用,南卡Runner CC3上手
- 中缀转后缀并分别计算
- hwd分别是长宽高_DS-2CD7A47HWD-XZS 海康威视400万人脸比对摄像机 DS-2CD7A47HWD-XZS/JM
- HEOI2013 ALO
- 奇妙而又有趣的密码学