Part17 迭代器,生成器

1- 可迭代对象 Iterable

        凡是可以用for ... in ... 遍历的对象,称之为可迭代对象

2- 遍历、迭代

        就是把可迭代对象中的元素一个个取出来的过程

3- 迭代器对象 iterator

判断一个对象的类型

isinstance(对象名,类型名)

判断一个对象是否是可迭代对象: isinstance(name,iterable)

可迭代对象有魔法方法__iter__(),可以通过iter()方法转换成迭代器对象iterator

iter(name)

迭代器对象有next()方法可以一次取出其中的元素

4- 迭代器协议

对象必须提供一个next方法,执行该方法要么返回下一项,要么触发stopIteration异常,来终止迭代

5- 自定义迭代器类

特性:两个方法__iter__() 和 __next__() 方法

6- 生成器

Python提供的一种简便的语法,一边循环一边计算的机制,叫做生成器

6.1 生成器表达式

列表推导器的中括号改为小括号就是生成器表达式

6.2 生成器函数

Python 中使用了yield关键字的函数,就是生成器函数

三者的关系:

可迭代对象:指实现了python迭代协议,可以通过for循环遍历的对象,如list,tuple,dict,str,迭代器,生成器

迭代器:可以记住自己遍历位置的对象,直观体现就是可以通过next()函数返回值,迭代器只能往前,不能往后

生成器:是特殊的迭代器。它是python的提供的一种简便方法写出迭代器的一种手段,其中有yield关键字。

可迭代对象》迭代器》生成器

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值