码迷,mamicode.com
首页 > 其他好文 > 详细

迭代器与生成器

时间:2017-01-14 00:34:34      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:python   生成器.迭代器   

迭代器:

    迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象,然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。

    迭代:他就是从某个地方(比如一个列表)取出一个元素的过程,当他们是一个循环来遍历某个东西时,这个过程就叫迭代

    可迭代对象:python的任意对象,只要它定义了可以返回一个迭代器的__iter__方法,或者定义了,可以支持下标索引的__getitem__方法那么他就是一个可迭代对象




生成器:

    生成器也是一种迭代器,但是你只能对其迭代一次,只是因为它们并没有把所有的值存在内存中,而是在运行时生成值。

    生成器最佳应用场景是:你不想同一时间将所有的计算出来的大量的结果分配到内存当中,特别是结果集里还包含循环。这样做回消耗大量资源。

    许多python2里的标准库函数都会返回列表,而python3都修改成了返回生成器,因为生成器占用更少的资源。



本文出自 “路小疯的疯人院” 博客,请务必保留此出处http://adonislxf.blog.51cto.com/11770740/1891810

迭代器与生成器

标签:python   生成器.迭代器   

原文地址:http://adonislxf.blog.51cto.com/11770740/1891810

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!