一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协议 对象必须提供一个 next 方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplte ...
分类:
编程语言 时间:
2018-12-05 00:22:47
阅读次数:
184
迭代器(iterator) 迭代器协议:必须拥有__iter__方法和__next__方法。 1)迭代的概念 ##双下方法: ...
分类:
其他好文 时间:
2018-11-25 17:55:26
阅读次数:
189
1.迭代 每次结果都是基于上一个结果 2.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下项,要么就引起一个stoplteration异常,以终止迭代(只能往后走,不能往前看) 3.可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__ 生成器 可以理解为 ...
分类:
编程语言 时间:
2018-11-17 23:17:33
阅读次数:
221
python基础之迭代器和生成器 迭代器 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 实现了迭代器协议的对象(对象内部定义了一个__iter__()方法) python中的内部工具( ...
分类:
编程语言 时间:
2018-11-16 12:18:49
阅读次数:
187
一、递归和迭代 递归:自己调用自己 举例解释:问路 A问B康明网络科技怎么走,B说我不是很清楚,我帮你问问C,C说我也不知道。我问问D,D说 就在兴隆。之后D返回结果给C,C返回结果给B,B返回结果给A. 迭代:迭,是更新的意思,每一次结果都是依据上一次结果产生。 举例解释:问路 A问B康明网络科技 ...
分类:
编程语言 时间:
2018-11-14 12:31:18
阅读次数:
191
迭代器和生成器 一、迭代器 (概念) ?1.?可迭代协议 >:只要是含有’__iter__’方法的数据类型都是可迭代的数据类型? 判断么某个变量是不是可迭代的:? 第一种方式: 第二种方式: 内置函数,判断一个具体的值是不是某个数据类型,括号里前面是具体的值,后面是数据类型.? 2.迭代器协议 >: ...
分类:
其他好文 时间:
2018-11-06 20:23:54
阅读次数:
181
我们之前一直用可迭代的对象像list/dict/tuplew/set到底什么是可迭代对象,什么是迭代器! 可迭代协议 只要含有"__iter__"方法的数据类型都是可迭代的 迭代器协议 含有"__next__"和"__iter__"方法的变量/值都是迭代器 __length_hint__ 表示迭代器 ...
分类:
其他好文 时间:
2018-11-06 20:23:35
阅读次数:
178
一、迭代器: 可迭代协议:可以被迭代要满足的要求就叫做可迭代协议。可迭代协议的定义非常简单,就是内部实现了__iter__方法。即可以被for循环的都是可迭代的,要想可迭代,内部必须有一个__iter__方法('__iter__' in dir(数据))。 迭代器协议:迭代器遵循迭代器协议:必须拥有... ...
分类:
其他好文 时间:
2018-11-06 13:31:01
阅读次数:
173
一 什么是迭代器协议 二 for循环机制 for循环的本质:循环所有对象,全都是使用迭代器协议 (字符串,列表,元组,字典,集合,文件对象)这些都不是可迭代对象,只不过在for循环中,调用了他们内部的__iter__()方法,把他们变成了可迭代对象。 然后for循环调用可迭代对象的__iter__( ...
分类:
编程语言 时间:
2018-10-15 20:43:53
阅读次数:
195
1. 迭代器协议:对象必须提供一个next方法,执行改方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,以终止迭代(只能外后走不能往前退) 2. 可迭代对象:实现了迭代器协议的对象 3. 协议的一种约定:可迭代对象实现了迭代器协议,python的内部工具(sum、min、ma ...
分类:
其他好文 时间:
2018-10-15 12:02:28
阅读次数:
106