python中的生成器

2020-12-13 14:39

阅读:239

标签:函数   循环   info   pytho   com   bre   mamicode   n+1   ext   

生成器

列表推导: L = [x * x for x in range(10)] 可创建一个列表

  • 内存限制,列表容量有限
  • 例如,创建包含100万个元素的列表L= [x * x for x in range(1e6)],不仅占用很大存储空间,如果仅访问前面几个元素,大多数元素占用的空间被浪费
  • 列表元素按照某种算法推算出来,在循环的过程中
    不断推算出后续元素?
  • 生成器(generator):延迟计算,不立刻产生结果

生成器创建

g=(x*x for x in range(10))

生成器调用

生成器保存的是算法,访问生成器中的元素:

每次调用next( ),计算下一个元素

技术图片

访问生成器

使用for...in进行迭代

g=(x*x for x in range(10))

for item in g:
    print(item)

生成器函数

其多次返回值,其实就是一个返回生成器的函数

def fib(max):
    n,a,b=0,0,1
    while n

python中的生成器

标签:函数   循环   info   pytho   com   bre   mamicode   n+1   ext   

原文地址:https://www.cnblogs.com/mengxiaoleng/p/11566822.html


评论


亲,登录后才可以留言!