迭代器:
迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象,然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。
迭代:他就是从某个地方(比如一个列表)取出一个元素的过程,当他们是一个循环来遍历某个东西时,这个过程就叫迭代
可迭代对象:python的任意对象,只要它定义了可以返回一个迭代器的__iter__方法,或者定义了,可以支持下标索引的__getitem__方法那么他就是一个可迭代对象
生成器:
生成器也是一种迭代器,但是你只能对其迭代一次,只是因为它们并没有把所有的值存在内存中,而是在运行时生成值。
生成器最佳应用场景是:你不想同一时间将所有的计算出来的大量的结果分配到内存当中,特别是结果集里还包含循环。这样做回消耗大量资源。
许多python2里的标准库函数都会返回列表,而python3都修改成了返回生成器,因为生成器占用更少的资源。
本文出自 “路小疯的疯人院” 博客,请务必保留此出处http://adonislxf.blog.51cto.com/11770740/1891810
原文地址:http://adonislxf.blog.51cto.com/11770740/1891810