码迷,mamicode.com
首页 > 编程语言 > 详细

python生成器

时间:2017-06-27 18:48:48      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:一行代码   blog   列表   next   比较   需要   切片   nbsp   占用   

在这里想看一行代码

技术分享

这是一个列表生成式。如果我们给的数不是range(10)而是range(100000000000000)呢。大家都知道生成一个列表是需要占用内存的,如果我range的数足够大的话,就会占用很多内存,浪费大量内存。

所以我们就引出一个新的名词“生成器”那么什么是生成器呢?

我们可以理解为它是在调用的时候才会产生数据;

例如:

b = ( i*2 for i in range(20000000000))
 这就是一个简单的生成器注意这里是()。那么请思考:相比较而言前者更省内存空间速度更快,他的内存地址还没有准备好,只是准备算法,当调用的时候才会根据算法产生直。缺点是不支持列表切片。
那么提取想要的数字的时候就需要借助__next__()在python2中是next()
例如:
技术分享

 

需要用b.__next__()这样的方式去调用
 
 

python生成器

标签:一行代码   blog   列表   next   比较   需要   切片   nbsp   占用   

原文地址:http://www.cnblogs.com/xiaogongzi/p/7086358.html

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