美文网首页
生成器,迭代器

生成器,迭代器

作者: 不浪漫的浪漫_ea03 | 来源:发表于2017-06-10 12:01 被阅读0次

1.生成器(generator)

一边循环一边计算的机制,称为生成器

1.1 列表生成器

只要把一个列表生成式的[]改成()

列表生成器

可以通过next()这个函数获得生成器的下一个返回值

next()

当计算到最后一个元素的时候,再继续next()的话就会抛出StopIteration异常

1.2创建生成器的方法2(yield)

在使用next()调用函数的时候,函数每次遇到yield都会中断,返回中断的值,当下次再被调用的时候会从上次打断的地方继续执行。用for循环调用generator的时候拿不到return语句返回的值,如果想要拿到返回值,必须捕获StopIteration错误。

1.3 send

send

send传的参数传给了上图中的temp(temp只是个变量名,可以是其他的),通过send传的参数可以做一些判断,从而实现多任务

1.4总结

生成器的特点:节约资源,迭代到下一次的调用时,所使用的参数都是第一次所保留的,也就是说,在整个函数中调用的参数都是第一次调用时保留的,而不是新创建的。

2.迭代器

2.1 可迭代对象

可以直接作用于for循环的对象统称为可迭代对象:iterable(list,tuple,dict,set,str,generator)

2.2 判断是否可以迭代

可以使用isinstance()判断   eg isinstance('abc',Iterable)

2.3 迭代器

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

可以使用isinstance()判断一个对象是否是Iterator对象(方法如上)

2.4 iter()

可以通过iter()把可迭代但不是迭代器的对象变成迭代器

2.5总结

(1)凡是可作用于 for循环的对象都是可迭代对象

(2)凡是可作用于next()的都是迭代器

(3)集合数据类型是可迭代对象但不是迭代器,可以通过iter()变成迭代器

(4) 目的是在使用集合的时候减少占用的内存

相关文章

  • 2019-03-20

    1 迭代器和生成器 迭代器 获取数据:next (迭代器)、for 循环遍历 ,数据来源:转换、生成器 生成器:...

  • yield and Iterator

    Generator(生成器) 生成器是特殊的迭代器,迭代器不一定是生成器。 生成器与迭代器均是可迭代对象。 目前学...

  • 14. Python之迭代器(iterator)和生成器(gen

    1 什么是迭代器 2 为何要有迭代器 3 如何用迭代器 4 生成器 生成器应用案例

  • 第014篇:三大神器之生成器

    Python的三大神器:装饰器、迭代器、生成器 1、生成器 1.1、什么是生成器 生成器就是迭代器的一种;生成器作...

  • ES6 ES7 语法特性与规范

    生成器函数 说生成器之前先讲迭代器,下面就是迭代器的简单范例,迭代器代表一个流程,迭代器的每次next()调用,会...

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

  • 迭代器

    可迭代对象(Iterable): for迭代器(Iterator): for + next生成器属于迭代器。 验...

  • Python :生成器、迭代器、装饰器、递归函数与正则表达式

    Python 第四篇:生成器、迭代器、装饰器、递归函数与正则表达式 Python迭代器和生成器 Python 迭代...

  • Python生成器

    1 生成器概念 生成器是一个特殊的迭代器(迭代器的抽象层级更高)所以,生成器拥有迭代器的特性:1.惰性计算,节省内...

  • 协程,生成器,迭代器

    高频率切换 迭代器 自定义迭代器 生成器 特殊的迭代器

网友评论

      本文标题:生成器,迭代器

      本文链接:https://www.haomeiwen.com/subject/ueiqqxtx.html