Python--迭代器、itertools库

可迭代对象(iterable):可以逐次返回其成员的项的对象。所有序列类型(list、str、tuple、range)、非序列类型、已经定义了__iter__()方法或实现了__getitem__()的任意的自定义类对象。可迭代对象可用于for循环、以及需要序列的地方(zip()、map()函数等等)。

迭代器(iterator):表示一连串数据流的对象。可以使用内置函数iter()生成一个iterator对象,此函数返回的迭代器只能做一次性的遍历,也就是说把迭代器中的元素都访问一次之后,此迭代器就不包含元素了。调用迭代器的__next__()方法可以依次返回其包含的值。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020080321004059.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0YW4xMTEx,size_16,color_FFFFFF,t_70

在这里插入图片描述
从图中可以看到,创建了包含三个元素的列表。使用iter()函数返回a的迭代器。调用迭代器本身的__next__()方法,每调用一次返回一个值。当前三次遍历完a列表中的值之后再次调用就会印发错误。内置函数next()和__next__()函数也是一样。

在这里插入图片描述
上图中使用for循环访问迭代器,可以看到第一次遍历完元素之后,迭代器就变成一个空的迭代器了。

itertools这个库中有许多的迭代器生成函数,包含无穷迭代器、根据最短输入序列长度停止的迭代器、排列组合迭代器这三种。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值