可迭代对象、迭代器和生成器
迭代(Iteration) 当我们使⽤⼀个循环来遍历某个东西时,这就叫⼀个迭代。 可迭代对象(Iterable) ⼀个可迭代对象是Python中任意的对象,只要它定义了可以返回⼀个迭代器的 __iter__ ⽅法,或者定义了可以⽀持下标索引的 __getitem__ ⽅法。简单说,⼀个可迭代对象,就是任意的对象,只要它能给我们提供⼀个迭代器。 container__iter__() 返回一个迭代器对象 。 该对象需要支持迭代器协议。 如果容器支持不同的迭代类型,则可以提供额外的方法来专门地请求不同迭代类型的迭代器。 迭代器(Iterator) ⼀个迭代器是任意⼀个对象,只要它定义了⼀个next(Python2) 或者 __next__ ⽅法。 iterator.__next__() 从容器中返回下一项。 如果已经没有项可返回,则会引发 StopIteration 异常。 特点: 节省内存,惰性机制,不能反复, 只能向下执行. 迭代器是可迭代的,所有的迭代器都是它们自己的迭代器 迭代器没有长度,它们不能被索引 可以把迭代器看作是 惰性迭代器 ,它们是 一次性使用 ,这意味着它们只能循环遍历一次。 文件迭代器 #手动遍历 f = open('xxx','r',encoding='utf8') f.readline() #每次调用readine方法,就会到下一列