迭代器
迭代器
什么是迭代器(iterator)
器指的是某种工具
迭代指的是更新换代的过程,
迭代的目的是要根据上一个结果,产生下一个结果,这是一个重复的过程,但不是单纯 的重复
迭代器就是,一种根据上一个结果得到下一个结果的工具,简单的来说就是一种获取数据的工具
可迭代对象
指的就是可以使用迭代器取出数据的对象
如何判断一个对象是否可迭代,看这个对象是否提供迭代器,通过对象调用
iter()来获取迭代器
迭代器的使用
1.通过调用对象的iter()方法到迭代器
2.调用迭代器的next()方法来获取每一个值
如何判断一个对象是不是迭代器?
迭代器是为了取值,取值使用next方法,那么只要对象具备next 方法就称之为迭代器
其中文件类型比较特殊,它既是迭代器,又是可迭代对象
迭代器总结:
迭代器是一种通用的取值方式
只有具备iter() 方法的对象1才能被迭代器取值,称之为可迭代对象
迭代器是为了取值,取值使用next方法,那么只要对象具备next 方法就称之为迭代器
python 中迭代器同时具备iter方法和next方法 调用iter将返回迭代器自身
每一种数据类型内部的迭代实现都各不相同
为什么使用迭代器
统一取值方式
如何使用
生成器
generator
名词解释:
生成数据的工具
生成是从无到有的过程
工具可以直接看成是函数,我们可以自己定一个函数来生产数据,但每次执行都只能产生一次数据
生成器的目的就是可以多次(不断地)生成数据
在python中生成器就是一个函数
但是函数内部至少yield关键字
反过来只要函数中出现了yield那么该函数就是一个生成器
yield关键字
一旦函数中出现了yield,调用函数时就不会立即执行函数体,并且返回一个生成器对象
当调用生成器的next方法时会执行函数体,但如果执行期间遇到yield函数就会暂停执行
每一次调用next 都是从上一次yield的位置继续往下执行,同时会将yield后的数据返回给调用者
yield与return的区别
都能返回一个只
不同之处在于:return只返回一次值,只要执行return汉书整体就结束了
而yield可以返回多次值,并且返回后将函数暂停住
生成器就是迭代器
生成器同时具备iter和next函数,足以证明其就是一个迭代器,所以可以直接使用for来遍历

浙公网安备 33010602011771号