itertools学习笔记

本文介绍了Python的itertools模块,包括无限迭代器如count、repeat和cycle的使用方法,以及处理输入序列的imap函数。这些工具对于高效迭代和处理序列非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

itertools用于高效循环的迭代函数集合

无限迭代器

itertools.count(start=0, step=1)

创建一个迭代器,生成从n开始的连续整数,如果忽略n,则从0开始计算(注意:此迭代器不支持长整数)
如果超出了sys.maxint,计数器将溢出并继续从-sys.maxint-1开始计算

from itertools import *
for i in zip(count(1), ['a', 'b', 'c']):
    print(i)


(1, 'a')
(2, 'b')
(3, 'c')

itertools.repeat(object[, times])

创建一个迭代器,重复生成object,times(如果已提供)指定重复计数,如果未提供times,将无止尽返回该对象。

from itertools import *
for i in repeat('over-and-over', 5):
    print (i)


over-and-over
over-and-over
over-and-over
over-and-over
over-and-over

itertools.cycle(iterable)

创建一个迭代器,对iterable中的元素反复执行循环操作,内部会生成iterable中的元素的一个副本,此副本用于返回循环中的重复项。
cycle(“abc”) #重复序列的元素,既a, b, c, a, b, c …
使用for或者next()调用里面的元素。

处理输入序列迭代器

itertools.imap(function, *iterables)

创建一个迭代器,生成项function(i1, i2, …, iN),其中i1,i2…iN分别来自迭代器iter1,iter2 … iterN,如果function为None,则返回(i1, i2, …, iN)形式的元组,只要提供的一个迭代器不再生成值,迭代就会停止。

即:返回一个迭代器, 它是调用了一个其值在输入迭代器上的函数, 返回结果. 它类似于内置函数 map() , 只是前者在任意输入迭代器结束后就停止(而不是插入None值来补全所有的输入).

返回序列每个元素被func执行后返回值的序列的迭代器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值