generator:生成器
generator中保存的是算法,在调用时才计算。
1、列表生成式转 generator
L = [x*x for x in range(10)] ###列表
g = (x*x for x in range(10)) ###generator
通过next(g)一个一个打印元素:>>>next(g)
0
>>>next(g)
1
>>>next(g)
4
通过for循环打印(因为generator是可迭代对象):
for n in g:
print(n)
通过list打印:print(list(g))
2、函数实现generator:
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return 'done'
print(list(fib(6)))
来看一个网上的面试题:
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]
个人理解过程如下:
当n为1时,此时g为初始generator test,执行for循环代码重新给g赋值:
g = (add(n,i) for i in test())
当n为10时,此时g为上面的generator,执行for循环代码重新给g赋值:
g = (add(n,i) for i in (add(n,i) for i in test()))
当n为5时,g为上面新的generator,执行for循环重新给g赋值:
g = (add(n,i) for i in (add(n,i) for i in (add(n,i) for i in test())))
当执行print(list(g))时,是要打印g中所有数据,此时g进行实际的计算:当前n为5,test返回的是[0,1,2,3],带入g的公式中
g = (add(5,i) for i in (add(5,i) for i in (add(5,i) for i in (0,1,2,3))))
g = (add(5,i) for i in (add(5,i) for i in (5,6,7,8))
g = (add(5,i) for i in (10,11,12,13))
最后g中数据为(15,16,17,18)
以上为个人理解,如有意见和建议欢迎反馈
分享到:
相关推荐
您是否在学习Python的路程中感觉路程漫漫?是否曾经半途而废? 是否感觉该学的内容众多? 因为先前编过《信手拈来按键帮你来》所以这里秉承了它的理念。 以Delphi语言开发的,内置百款实例代码,从速借鉴、高效开发...
Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器Python实战二维码生成器...
【Python代码生成器内测版1.0.7z】是一个专为Python编程语言设计的工具,用于自动化代码编写过程,提升开发效率。这个版本是内测版,意味着它可能包含一些试验性的功能或者尚未公开的功能,用户在使用时需要有一定的...
Python 二维码生成器是一种能够使用Python编程语言生成二维码图像的软件。它可以通过控制台或者导入模块的方式使用,可以生成各种格式的二维码,包括PNG、JPEG、GIF等格式,还可以生成带有文字、图片、链接等信息的...
在这个特定的项目中,"NFT人物头像随机生成器Python源码" 是一个利用Python编程语言编写的程序,用于创建具有独特设计的人物头像,这些头像可以被用作NFT艺术品的基础。通过这个程序,用户可以生成一系列随机组合的...
【小白必看】Python词云生成器详细解析及代码实现, 资源内容是词云图代码文件及相关资源,用于测试代码的实现.【小白必看】Python词云生成器详细解析及代码实现, 资源内容是词云图代码文件及相关资源,用于测试代码的...
Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python实战艺术签名生成器Python...
Python二维码生成器是一种利用Python编程语言创建二维码的工具。在当今信息化社会,二维码广泛应用于名片、网址、付款码、电子票务等领域。Python中有多个库支持二维码的生成,如`qrcode`、`pyqrcode`等。在这里,...
1. 绪论 车牌自动生成器软件设计与实现是一个重要的课题,特别是在当前人工智能和...通过上述内容,本文将详细介绍如何利用Python和OpenCV构建一个功能完善的车牌自动生成器,为车牌识别技术的进步提供有力的支持。
Python 实例 - 二维码生成器 Python源码Python 实例 - 二维码生成器 Python源码Python 实例 - 二维码生成器 Python源码Python 实例 - 二维码生成器 Python源码Python 实例 - 二维码生成器 Python源码Python 实例 - ...
在Python编程语言中,参数生成器是一种非常实用的工具,特别是在处理大量数据或者需要动态生成参数的场景下。参数生成器通常通过生成器函数来实现,这种函数在执行时不会一次性生成所有结果,而是每次调用`yield`...
**Python试卷生成器** 在教育领域,特别是在学校和培训机构中,教师经常需要为学生准备考试试卷。手动创建试卷是一项耗时且重复的工作。为了解决这个问题,我们可以利用编程技术,特别是Python,来创建一个自动化的...
* Python 之三元表达式、生成式、生成器表达式 * Python 之面向过程编程思想与匿名函数及其应用 * Python 之内置函数 * Python 之函数递归与调用 * Python 之二分法 第九章:模块 * Python 之模块 * 软件开发的...
在本案例中,我们关注的是一个基于Python实现的免安装词云生成器,它特别适合那些不熟悉编程环境设置或对Python无了解的用户。 首先,Python作为一种强大的编程语言,拥有丰富的库资源,其中`wordcloud`库是用于...
Python版的汽车WIN码生成器 汽车行业可能需要
利用Python3的模块,实现简单的密码生成器,通过指定组成密码的字符及密码长度,生成全部组合的密码。
在Python编程语言中,迭代器、生成器、with语句和上下文管理器以及修饰符是四个非常重要的概念,它们在处理数据流和资源管理时起着关键作用。以下是关于这些知识点的详细解释: 1. **迭代器**: - 迭代器是一种...
这个自定义工具弥补了在线二维码生成器无法满足特定需求的不足。在本文中,我们将深入探讨Python如何实现这一功能,并分享如何使用这个自定义工具来提高工作效率。 首先,我们需要了解二维码(Quick Response Code...
海报编辑器最左侧是组件...快速:三步完成海报开发工作:启动服务 > 编辑海报 > 生成代码 简单:组件丰富、支持拖拽、复制、所见即所得、下载等功能。 动态:无需更改代码,直接在编辑器修改海报即可获得最新的海报。