'''什么是生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(不需__iter__方法了),所以生成器就是可迭代对象.生成器在python中有2中表现形式:1 生成器函数: 常规函数的定义,但是,使用yield语句而不是return语句返回结果,yield语句一次返回一个结果 在每 ...
分类:
其他好文 时间:
2018-04-28 14:31:07
阅读次数:
179
'''1 迭代器协议是指 : 对象必须提供一个next方法,执行改方法要不返回迭代中的下一项;要不引起一个Stopliteration异常,以终止迭代(只能往后不能往前退)2 可迭代对象 : 实现了迭代器协议的对象(如何实现:对象内部定义了一个__iter__()方法,把对象变成一个可迭代对象,遵循... ...
分类:
其他好文 时间:
2018-04-28 14:22:18
阅读次数:
120
列表生成式 a = [i + 1 for i in range(10)] 生成器(generator) 一边循环,一边计算的机制 一种数据类型,这种数据类型自动实现了迭代器协议,是一个可迭代对象。 实现延迟计算,按需执行,节省内存 生成器分类 生成器函数,使用 yield 返回结果和挂起状态 生成器 ...
分类:
其他好文 时间:
2018-04-27 20:03:13
阅读次数:
123
今天学习了迭代器生成器以及内置函数和匿名函数,说实话有些懵圈,有些难度了。 一、迭代器和生成器 1、如何从列表、字典中取值的: index索引 for循环 凡是可以使用for循环取值的都是可迭代的 (1)可迭代协议:内部含有__iter__方法的都是可迭代的 (2)迭代器协议:内部含有__iter_ ...
分类:
编程语言 时间:
2018-04-27 15:48:10
阅读次数:
204
一.迭代的概念 二什么是迭代器协议 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print(' >') l=[1,2,3] count=0 while count ...
分类:
其他好文 时间:
2018-04-25 18:55:47
阅读次数:
140
一、递归于迭代 迭代:下一组数据的由上一组数据next方法提供,只能往后走,不能往前走。 在列表中,由方法a=l.__iter__()把使列表遵循迭代器协议,转换成可迭代对象 可以用a.next()方法取列表数据 二、用for循环,循环可迭代对象的原理 18-718 ...
分类:
编程语言 时间:
2018-04-17 22:59:59
阅读次数:
228
内部有next,内部有iter()方法,满足迭代器协议称为迭代器。 可以直接用for循环的对象我们统称为可迭代对象:Iterable for 循环内部做的三件事。 1)调用可迭代对象的iter方法并返回一个迭代器对象。 2)不断调用迭代器对象的next方法 3)处理stopIteration异常。 ...
分类:
其他好文 时间:
2018-04-14 13:57:24
阅读次数:
131
1.迭代器(iterator) 要说生成器,必须首先说迭代器 1.区分iterable,iterator与itertion 讲到迭代器,就需要区别几个概念:iterable,iterator,itertion, 看着都差不多,其实不然。下面区分一下。 itertion: 就是迭代,一个接一个(one ...
分类:
编程语言 时间:
2018-04-09 11:15:24
阅读次数:
229
在Python中,很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等等,这些对象都可以被称为可迭代对象。至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了。 迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__i ...
分类:
编程语言 时间:
2018-04-08 14:39:37
阅读次数:
179
生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型调用了自己内置的_iter_()方法),所以生成器就是可迭代对象 ...
分类:
其他好文 时间:
2018-04-07 16:08:50
阅读次数:
112