python基础13-迭代器和生成器

迭代器和生成器

凡是可以使用for循环取值的都是可迭代的可迭代协议:    内部含有__iter__方法的都是可迭代的迭代器协议    内部含有__iter方法和__next__方法的都是迭代器什么是迭代器    迭代器=iter(可迭代的).自带一个__next__方法    优势:节省内存\快    特性:惰性运算    常用的:列表\字典\元素\字符串\集合\range\文件句柄\enumeratepython 2和python3中的range区别    python2x种range不管range多少,会生成一个列表,这个列表将用来存贮所有的值    python3中,不管range多少,都不会实际的生成热呢一个值    python3种,有yield from生成器函数:            凡是带有yield的函数,就是一个生成器函数;            生成器函数的调用不会触发代码的执行,而是会返回一个生成器;想要生成器函数执行,用next()            记录当前所在的位置,等待        如何从生成器中取值?            1)next 随时都可以停止,最后一次会报错            2)for循环,从头到尾遍历一次,不遇到break\return不会停止            3)list\tuple 数据类型的强制转换        yield返回值的简便方法,如果本身就是循环一个可迭代的,且要把可迭代数据中的没一个元素都返回,可以用yield from        使用send的时候,在生成器创造出来之后需要进行预激活,可以用装饰器实现.        生成器用来解决内存问题和程序功能之间的解耦列表推导式:    [i for i in rang(30) if i%3==0]生成器表达式    (i for i in rang(30) if i%3==0)    一个生成器只能取一次    生成器在不找他要值得时候,不取值.

原文地址:https://www.cnblogs.com/yimiaoyikan/p/8988384.html

时间: 2024-10-09 02:20:09

python基础13-迭代器和生成器的相关文章

1.17 Python基础知识 - 迭代器和生成器初识

可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象. 列表解析表达式:可以简单高效处理一个可迭代对象,并生成结果列表 示例代码: [ i ** 2 for i in range(10) ] #输出结果 [0,1,4,9,16,25,36,49,64,81] 生成器表达式:可以简便快捷地返回一个生成器.生成器表达式的语法和列表解析式基本一样,只不过是将[]替换成() 生成器的数据只有在调用时才生成 示例代码: a = ( i ** 2 for i in range(10)) print

Python高手之路【九】python基础之迭代器与生成器

迭代器与生成器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁.这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件 特点: 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一

python 基础之迭代器与生成器

迭代器和生成器 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大有点是不要求先准备好整个迭代过程中所有的元素.迭代器仅仅在跌带到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁.这个特点使得它特别适合用于遍历一些巨大或者无限的集合. 特点 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容 不能随机访问集合中的

python基础:迭代器、生成器(yield)详细解读

1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 1.1 使用迭代器的优点 对于原生支持随机访问的数据结构(如tuple.list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值).但对于无法随机访问的数据结构(比如set)而言,迭代器是唯一的访问元素的方式. 另外,迭代器的一大优点是不要求事

python基础之迭代器和生成器

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

python基础学习迭代器和生成器

可以直接作用于for循环的数据类型有一下几种 一类是几何数据类型,如 list , tuple  , dict , set ,str 等 二类是generator包括生成器和带yield方法的函数 这些可以直接作用于for 循环的对象统称为可迭代对象 Iterable 我们可以使用法法.isinstance判断一个对象是否是Iterable对象 生成器不但可以作用于for循环,还可以使用next()方法不断的调用并返回下一个值,直到最后抛出StopIteration异常,表示无法继续返回下一个值

Python成长之路【第五篇】:Python基础之迭代器和生成器

一.递归和迭代 递归就是调用自身 迭代就是每次迭代都是依赖于上次结果 二.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stopiteration异常,以终止迭代(只能往后走,不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,Python的内部工具(如for循环,sum,min,max等函数)都是使用迭代器协议访问对象 三

Python基础 ( 六 ) —— 迭代器和生成器

#迭代器 #什么是迭代器协议? 是指对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,否则引起一个stop Iteration异常,以终止迭代.并且不可逆. 对象1 -->提供一个next方法 --> 调用对象的next方法(对象.next) -->对象2  ...... #可迭代对象 遵循迭代器协议的对象 #协议 协议是一种约定,可迭代对象实现了迭代器协议,python的一些内部工具(如for.sum.min.max函数)使用迭代器协议访问对象 原文地址:https://

Python开发【第五篇】:Python基础之迭代器、生成器

迭代器 一.迭代的概念 迭代器即迭代的工具,那什么是迭代呢?迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 优点: 提供一种统一的.不依赖于索引的迭代方式 惰性计算,节省内存缺点: 无法获取长度(只有在next完毕才知道到底有几个值) 一次性的,只能往后走,不能往前退 1.为何要有迭代器? 对于序列类型:字符串.列表.元组,我们可以使用索引的方式迭代取出其包含的元素.但对于字典.集合.文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索

python函数:迭代器和生成器

python函数:迭代器和生成器 迭代器和生成器是函数中的一大重点,务必掌握,何为迭代?何为迭代器? 预习: 处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕(使用生成器) 一.迭代器 for i in 50:     print(i) #运行结果: # Traceback (most recent call last): #   File "G:/python/python代码/八月/day2 迭代器生成器/3迭代器.py", line 8, in &