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

生成器面试题分析

时间:2019-12-16 13:17:23      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:a+b   生成   turn   print   记录   return   没有   取值   test   

def add(a, b):
return a+b

def test():
for r_i in range(4):
yield r_i

g = test()
for n in [2,10]:
g = (add(n, i) for i in g)
print(list(g)) # [20, 21, 22, 23]

分析

def add(a, b):
return a+b

‘‘‘生成器函数‘‘‘
def test():
for r_i in range(4):
yield r_i

g = test() # 获取生成器,未取值 0,1,2,3 懒
for n in [2,10]:
g = (add(n, i) for i in g)
‘‘‘
当n =2
g = (add(n, i) for i in g) 此时只是记录,并没有取值
n=10
g = (add(n, i) for i in (add(n, i) for i in g))
记录此时的g, 当list(g)再取值,此时n=10,把10带入
list(g) 0,1,2,3
g = (add(10, i) for i in (add(10, i) for i in [0,1,2,3]))
‘‘‘
print(list(g)) # [20, 21, 22, 23]

生成器面试题分析

标签:a+b   生成   turn   print   记录   return   没有   取值   test   

原文地址:https://www.cnblogs.com/bing-123/p/12048444.html

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