首先解释以下迭代器跟可迭代对象(Iterable)的区别,可以直接作用于for循环或者实现了__iter__的对象统称为可迭代对象(Iterable)。可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。 1,可迭代对象 可迭代对象不一定是迭代器,像list是可以被fo ...
分类:
编程语言 时间:
2016-11-01 14:38:34
阅读次数:
263
当yield 返回迭代器之后,后面再return 非迭代器的值的话, return返回的值使用迭代器(for a in f)不能找到,next会报类型错误。 ...
分类:
编程语言 时间:
2016-10-20 00:05:50
阅读次数:
209
8.1可迭代对象(Iterable)大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身,例如:>>>lst=[1,2,3]
>>>lst.__iter__()
<listiteratorobjectat0x7f97c549aa50>Python提供一些语句和关键字..
分类:
编程语言 时间:
2016-10-17 16:25:26
阅读次数:
194
可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可以使用isi ...
分类:
编程语言 时间:
2016-10-14 07:36:52
阅读次数:
151
迭代器是Python中的一个高级概念,迭代器是一个实现了迭代器协议的对象,那何为迭代器协议呢?满足下面两个条件就行。(1)该对象实现了__iter__()方法;(2)该对象实现了next()方法,返回当前元素,并指向下一个元素的位置,如果当前位置已无元素,则抛出StopIteration异常。..
分类:
编程语言 时间:
2016-10-06 00:48:04
阅读次数:
278
结果: 当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。 那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断: Python内置的enumerate函数可以把一个list ...
分类:
编程语言 时间:
2016-09-23 21:26:51
阅读次数:
121
迭代器:是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每次迭代时调用next方法,并且捕捉StopIte ...
分类:
编程语言 时间:
2016-09-18 13:34:59
阅读次数:
110
迭代 如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历我们称为迭代 (Iteration)。 可迭代:一个对象、物理或者虚拟存储的序列。 list,tuple,strings,dictionary,set 以及生成器对象都是可迭代的, ...
分类:
编程语言 时间:
2016-09-07 19:10:18
阅读次数:
135
迭代器与生成器的区别: 1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建. 2. 迭代器的原理: (1)由Iterable.__iter__()返回Iterator. (2)由Iterator.__next__()返 ...
分类:
编程语言 时间:
2016-09-07 14:42:15
阅读次数:
150