在这里想看一行代码
这是一个列表生成式。如果我们给的数不是range(10)而是range(100000000000000)呢。大家都知道生成一个列表是需要占用内存的,如果我range的数足够大的话,就会占用很多内存,浪费大量内存。
所以我们就引出一个新的名词“生成器”那么什么是生成器呢?
我们可以理解为它是在调用的时候才会产生数据;
例如:
b = ( i*2 for i in range(20000000000))
这就是一个简单的生成器注意这里是()。那么请思考:相比较而言前者更省内存空间速度更快,他的内存地址还没有准备好,只是准备算法,当调用的时候才会根据算法产生直。缺点是不支持列表切片。
那么提取想要的数字的时候就需要借助__next__()在python2中是next()
例如:

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