迭代器

迭代器

什么是迭代器(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来遍历

 

 

posted @ 2019-01-17 08:33  云中一只小雀鸟  阅读(139)  评论(0)    收藏  举报