本来在写生成器,但是生成器就是一种特殊的迭代器,所以我觉得还是先把迭代器写一下。
可以直接作用于for循环的对象统称为可迭代对象(Iterable)。
可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。
所有的Iterable均可以通过内置函数iter()来转变为Iterator
迭代类型:
1,for循环:可用于任何可迭代的对象,实际上对python中所以会从左到右扫描对象的迭代工具而且都是如此,这些迭代工具包括了for循环,列表解析,in成员关系测试以及map内置函数等。
2.文件迭代器:因为文件对象就是自己的迭代器,优点是:(减少内存的使用,不需要把所以内容都加载到内存中)
3,手动迭代:iter和next
通过for循环开始时,会通过它传给iter内置函数,以便从可迭代对象中获取一个跌打器,返回的对象含有需要的next方法(这一步对于文件来说不是必须的,因为文件对象就是自己的迭代器)
例如:
#文件 >>> import tab >>> f=open("test","r") >>> iter(f) is f True #序列字符串 >>> a=[1,2,3,4] >>> iter(a) is a False
liefs
本文出自 “王小酸” 博客,请务必保留此出处http://wangaimin.blog.51cto.com/8499946/1908361
原文地址:http://wangaimin.blog.51cto.com/8499946/1908361