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

python -----关于生成器generator

时间:2020-06-13 13:23:48      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:循环   for   int   gen   print   --   div   nbsp   列表   

普通生成器:

j =[x*8 for x in range(10)]#普通列表生成式
j2 = (x*8 for x in range(10))#普通生成器 ,只需将 [ 改成( 即可。
print(j2)#能看到打印出的是生成器的内存地址,说明生成器返回的并不是列表,生成器只是可迭代的数列算法。
print(list(j2))#启动生成器,使其执行算法,将值返回到列表中,最终以列表的方式显现。
next(j2)#常用来与生成器搭配,可以启动生成器,使其返回一条值
for i in j2:
  print(i) #常用来遍历生成器,将其循环打印出来

似函数式生成器:

‘‘‘斐波那契数列函数(生成器):‘‘‘
def fib(max):
  n,a,b = 0,0,1
  while n<max:
    print(b)# ------>>>将其换为 yield b 则转变为生成器<<<------
    a,b=b,a+b
    n +=1
  return ‘done‘
f = fib(max) #切记将生成器赋值给变量f
print(f.__next__())#常用来与生成器搭配,使其返回一条值,反复调用则连续返回
for i in f :
  print(i) #遍历打印


 

python -----关于生成器generator

标签:循环   for   int   gen   print   --   div   nbsp   列表   

原文地址:https://www.cnblogs.com/goldapple/p/13113507.html

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