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

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

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

解析:

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

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

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

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

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

												

python 面试题之 生成器的更多相关文章

  1. Python面试题之生成器/迭代器

    1.为什么要有生成器? 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个 ...

  2. python公司面试题集锦 python面试题大全

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  3. python 面试题4

    Python面试题 基础篇 分类: Python2014-08-08 13:15 2071人阅读 评论(0) 收藏 举报 最近,整理了一些python常见的面试题目,语言是一种工具,但是多角度的了解工 ...

  4. 一道Python面试题

    无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun():    temp = [lambda x : i*x for i in range(4)]    return ...

  5. 很全的 Python 面试题

    很全的 Python 面试题 Python语言特性 1 Python的函数参数传递 看两个例子:           Python   1 2 3 4 5 a = 1 def fun(a):      ...

  6. Python学习之旅—生成器对象的send方法详解

    前言 在上一篇博客中,笔者带大家一起探讨了生成器与迭代器的本质原理和使用,本次博客将重点聚焦于生成器对象的send方法. 一.send方法详解  我们知道生成器对象本质上是一个迭代器.但是它比迭代器对 ...

  7. Python面试题(3)

    整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...

  8. 最新python面试题

    1.一行代码实现1--100之和 利用sum()函数求和 2.如何在一个函数内部修改全局变量 利用global 修改全局变量 3.列出5个python标准库 os:提供了不少与操作系统相关联的函数 s ...

  9. Python面试题及答案汇总整理(2019版)

    发现网上很多Python面试题都没有答案,所以博主花了很长时间搜集整理了这套Python面试题及答案,由于网上的Python相关面试题大多数都是2019年的,所以我这个也是2019版的,哈哈~ (文末 ...

随机推荐

  1. python多版本共存

    根据环境变量的顺序调用python,pip等程序 将python.exe修改为python2.exe(或python3.exe)后可以通过不同的名字调用不同版本的python 注意修改Anaconda ...

  2. (5)TCP和UDP协议

    TCP(Transmission Control Protocol)可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览 ...

  3. Spring Cloud ----> 几个组件的总结

    Spring Cloud Eureka 多个服务,对应多个Eureka Client 只有一个Eureka Server ,充当注册中心的角色每个Eureka Client 有ip 地址和端口号,它们 ...

  4. Appium TestNg Maven Android Eclipse java自动化环境搭建

    1.环境准备 1)Eclipse + maven + appium + TestNg 确保已经在Eclipse 上面安装maven TestNg的插件 2)打开Eclipse,新建一个maven项目 ...

  5. Codeforces Round #129 (Div. 1)E. Little Elephant and Strings

    题意:有n个串,询问每个串有多少子串在n个串中出现了至少k次. 题解:sam,每个节点开一个set维护该节点的字符串有哪几个串,启发式合并set,然后在sam上走一遍该串,对于每个可行的串,所有的fa ...

  6. Log4Net 记录错误日志。

    点击进入推荐链接 1.先添加log4net.dll的引用.   2.在程序入口的地方(Gloabal文件)加上这句log4net.Config.XmlConfigurator.Configure(). ...

  7. 通过编写一个简单的日志类库来加深了解C#的文件访问控制

    在程序的开发调试过程及发布运行后的状态监控中,日志都有着极其重要的分量,通过在关键逻辑节点将关键数据记录到日志文件当中能帮助我们尽快找到程序问题所在.网上有不少专业成熟的日志组件可用,比如log4ne ...

  8. 小程序for循环绑定每组数据的id,并通过id获取里面某个数组的值的方法

    WXML: <block wx:for="{{nums}}" wx:for-index='key' wx:for-item='item'> <view class ...

  9. css3 翻牌动画

    最近做了一个特效,css是从网上找的,地址是这个: CSS3 animate flip下的纸牌翻转效果实例页面 把其中核心的css代码扒出来如下: /* The properties in this ...

  10. HTML的块级元素和行内元素

    行内元素一般是内容的容器,而块级元素一般是其他容器的容器.一般情况下,行内元素只能包含内容或者其它行内元素,宽度和长度依据内容而定,不可以设置,可以和其它元素和平共处于一行:而块级元素可以包含行内元素 ...