python 面试题之 生成器

如下函数执行结果是什么?

答案:  [20, 21, 22, 23]

核心要点:本题重点在对生成器的理解, 生成器具有惰性机制 ,只有在取值的时候才执行.

解析:

for 循环遍历列表,执行了两次

第一次 n =2, 第二次 n = 10 

但是在这个过程中      g = (add(n, i) for i in g)  并没有执行, 因为只有在取值的时候才会执行

直到代码执行到  print(list(g))  生成器才被执行

所以原代码等价于如下代码:

 

 

 
 

 

转载于:https://www.cnblogs.com/Arvin2018/p/9932298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值