开发者社区> 问答> 正文

阅读以下代码,推导最后结果

阅读以下代码,推导最后结果

def add(n, i):
    return n+i
 
def test():
    for i in range(4):
        yield i
 
g = test()
 
for n in [1, 10, 5]:
    g = (add(n, i) for i in g)
 
print(list(g))  # 结果是 [15, 16, 17, 18]

展开
收起
珍宝珠 2019-11-29 14:22:20 1009 0
1 条回答
写回答
取消 提交回答
  • 所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。附上我的推导过程:

    n = 1
    g = (add(n,i) for i in test())
    # print(list(g))    # [1, 2, 3, 4]
    n = 10
    g = (add(n,i) for i in (add(n,i) for i in test()))
    # print(list(g))    # [20, 21, 22, 23]
    n = 5
    g = (add(n,i) for i in (add(n,i) for i in (add(n,i) for i in test())))
    g = (add(n,i) for i in (add(n,i) for i in (5,6,7,8)))
    g = (add(n,i) for i in (10,11,12,13))
    g = (15,16,17,18)
    print(list(g))    # [15, 16, 17, 18]
    
    2019-11-29 14:22:46
    赞同 展开评论 打赏
问答分类:
5G
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载