迭代器一定是可迭代对象,但是可迭代对象不一定是迭代器。 list,truple,str这些都是可迭代对象,但是他们不一定是迭代器。迭代器本身不知道自己要执行多少次,所以可以理解为不知道有多少个元素,每调用一次next(),就会往下走一步,是惰性的。 迭代器提供了一种不依赖索引取值的方式,这样可以遍历 ...
分类:
编程语言 时间:
2018-05-06 18:54:03
阅读次数:
182
python 【迭代器 生成器 列表推导式】 一、迭代器 3、迭代器优势 a、节省内存 b、取一个值就能进行接下来的计算 ,而不需要等到所有的值都计算出来才开始接下来的运算 —— 快 4、迭代器的特性:惰性运算 二、生成器 Generator 自己写的迭代器 就是一个生成器 两种自己写生成器(迭代器 ...
分类:
编程语言 时间:
2018-05-05 11:13:45
阅读次数:
197
一.定义1.迭代器协议是指:对象必须提供一个next方法,执行方法要么返回迭代器中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)2.可迭代对象:实现了迭代器协议的对象(实现方式:对象内部定义了一个iter()方法)3.协议是一种约定,可迭代对象实现了迭代器协议,Python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象。
分类:
编程语言 时间:
2018-05-01 23:21:25
阅读次数:
140
生成器 通过列表生成式, 可以直接生成一个列表. 但是受到内存限制, 列表容量是有限的. 如果创建一个包含100万个元素的列表, 却只需要访问其中几个, 空间就浪费了. 如果列表元素可以按照某种算法算出来, 在循环的过程中不断推算出后续的元素, 这样就不必创建完整的list,从而节省大量空间. 在P ...
分类:
编程语言 时间:
2018-04-28 19:37:15
阅读次数:
162
一、递归于迭代 迭代:下一组数据的由上一组数据next方法提供,只能往后走,不能往前走。 在列表中,由方法a=l.__iter__()把使列表遵循迭代器协议,转换成可迭代对象 可以用a.next()方法取列表数据 二、用for循环,循环可迭代对象的原理 18-718 ...
分类:
编程语言 时间:
2018-04-17 22:59:59
阅读次数:
228
一、可迭代协议:可以被迭代要满足要求的就叫做可迭代协议。内部实现了__iter__方法 iterable:可迭代的 对应的标志 什么叫迭代?:一个一个取值,就像for循环一样取值 字符串,列表,元组,集合,字典都是可迭代的 二、迭代器协议:内部实现了__iter__,__next__方法 迭代器大部 ...
分类:
编程语言 时间:
2018-04-04 23:32:19
阅读次数:
227
Python 全栈开发:python迭代器,生成器 迭代器 一、什么是迭代器 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print(' >') l=[1,2,3 ...
分类:
编程语言 时间:
2018-04-02 10:09:13
阅读次数:
250
本文转自:http://python.jobbole.com/85321/ Python提供了一个非常棒的模块用于创建自定义的迭代器,这个模块就是 itertools。itertools 提供的工具相当高效且节省内存。使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环。这一章,我们将一起看一 ...
分类:
编程语言 时间:
2018-03-26 22:25:56
阅读次数:
238