博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中itertools模块介绍---01
阅读量:6375 次
发布时间:2019-06-23

本文共 1154 字,大约阅读时间需要 3 分钟。

hot3.png

itertools模块中包含了很多函数,这些函数最终都生成一个或多个迭代器,下面对这些函数进行介绍:

为了能够使用itertools中的函数,需要将该模块导入:

>>>from itertools import *

count(start=0,step=1):

源代码为:

def count(start=0,step=1):    n=start    while True:        yield n        n+=step

从源代码可以看出,count函数产生一个生成器,该生成器可以返回一个个数,默认是从0开始,每次增加1.例如:

>>>a=count(2,3)>>>a.next()2>>>a.next()5>>>a.next()8

当然,start和step也可以是小数。如果超出了sys.maxint,计数器将溢出,并继续聪哥-sys.maxint-1开始计算。

cycle(iterable):

源代码为:

def cycle(iterable):    saved=[]    for element in iterable:        yield element        saved.append(element)    while True:        for element in saved:            yield element

从源代码可以看出,cycle函数创建了一个列表,然后将iterable中的元素存储进去,最后无限返回列表中的元素。因此,cycle函数的作用是创建一个生成器,该生成器无限地返回参数中的元素,例如:

>>>a=cycle([1,2,3,4])>>>a.next()1>>>a.next()2>>>a.next()3>>>a.next()4>>>a.next()1

repeat(object[,times]):

源代码如下:

def repeat(object,times=None):    if times is None:        while True:            yield object    else:        for i in xrange(times):            yield object

当times没有被指定时,repeat无限重复,返回原对象。当times指定后,将重复times次返回该对象。例如:

>>>a=repeat('abc',2)>>>a.next()'abc'>>>a.next()'abc'>>>a.next()StopIteration异常

转载于:https://my.oschina.net/935572630/blog/393338

你可能感兴趣的文章
Facebook、纽约大学利用机器学习5分钟搞定核磁共振检查
查看>>
221. Maximal Square
查看>>
MySQL基础
查看>>
机器学习A-Z~支持向量机
查看>>
PAT A1010 二分进制结合重点题
查看>>
LeetCode35.搜索插入位置 JavaScript
查看>>
5个让人赞不绝口的微信小程序,拒绝占用手机内存!
查看>>
Spring Security整合KeyCloak保护Rest API
查看>>
POS概述
查看>>
containerd发布了CRI修复程序和CVE-2019-5736更新的runc
查看>>
77. Combinations
查看>>
WEB前端开发的思考与感悟
查看>>
实现了所有主流APP的分类切换效果,可快速接入,灵活扩展(swift)
查看>>
微信自动跳转浏览器打开APP(APK)下载链接
查看>>
==与===的区别
查看>>
机器学习实验笔记
查看>>
不同工具查看代码分支diff的差异
查看>>
一文 | 跨域及其解决方案
查看>>
白话Java I/O模型
查看>>
[TsAdmin]--一款基于Vue.js+Element UI的单页无刷新(无iframe)多选项卡的后台管理系统模板...
查看>>