任何包含yield语句的函数称为生成器。
它的行为和普通的函数有很大的差别,它不是像return那样返回值,而是每次产生
多个值。每次产生一个值(使用yield语句),函数就会被冻结:即函数停在那点等待
被激活。函数被激活后就从停止的那点开始执行。
例子:
def flatten(nested):
for sublist in nested:
for element in sublist:
yield element
nested = [[1,2], [3, 4], [5]]
print list(flatten(nested))
递归生成器:
# recursion yield example
def flatten2(nested):
try:
# Don't iteration of the string similar objects
try: nested + ''
except TypeError: pass
else: raise TypeError
for sublist in nested:
for element in flatten2(sublist):
yield element
except TypeError:
yield nested
print list(flatten2([[[1],2], 3, 4, [5, [6, 7]], 8]))
print list(flatten2(['foo', ['bar', ['baz']]]))
分享到:
相关推荐
QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT皮肤生成器QT...
迷宫生成器1.0 迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫生成器1.0迷宫...
《C#代码生成器详解与应用》 C#代码生成器是一种高效开发工具,它能够帮助程序员快速生成符合特定需求的C#源代码,极大地提高了编程效率和代码质量。在.NET框架下,C#作为主要的开发语言,其代码生成器的作用显得尤...
长微博生成器电脑版是一款可以在微博上发布长篇大论的工具,能帮做用户把长文章生成图片,有需要把文章生成图片的都可以使用长微博生成器,简单操作即可帮你完成,速度快可直接上传微博。 长微博生成器电脑版简介 发...
LCD字库生成器是一款专为液晶显示器(LCD)设计的工具,用于创建和管理自定义的字符库。在嵌入式系统和物联网设备中,LCD显示通常需要特定的字库来呈现文字信息。这款生成器可以帮助开发者根据需求生成适配LCD屏幕的...
微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码...
asp.net 代码生成器 【基本说明】 1、能够生成三层模式操作的所有后台代码,简单的SQL Server 2005数据库操作。 2、生成的代码包括了 MODEL、BLL、DAL、DBHelper、Config 生成的代码内有详细注释可提供参考。 ...
微信小程序 小程序页面生成器 (源码)微信小程序 小程序页面生成器 (源码)微信小程序 小程序页面生成器 (源码)微信小程序 小程序页面生成器 (源码)微信小程序 小程序页面生成器 (源码)微信小程序 小程序页面生成器 ...
人人代码生成器是一款高效实用的工具,主要用于自动化代码编写过程,极大地提高了开发人员的生产力。在软件开发领域,代码生成器扮演着至关重要的角色,它能够根据预设的模板或模型自动生成符合特定规范的源代码,...
关于压缩包中的"51CTO下载-组织机构代码生成器",这可能是指在51CTO网站上可以下载到的特定版本的代码生成器软件。51CTO是中国一个知名的IT技术交流平台,提供各种软件下载、技术教程和论坛讨论服务。下载这款工具后...
在电子显示领域,16点阵字模生成器是一个非常实用的工具,尤其对于制作电子广告牌、LED显示屏等需要显示汉字的设备来说。这个生成器可以将汉字转化为16*16像素的图形,也就是16点阵字模。16点阵是一种常见的字符表示...
MyBatis 代码生成器是一款高效实用的工具,旨在帮助开发者自动创建常见的CRUD操作代码,从而节省在数据库交互上花费的时间,提高开发效率。它支持多种数据库,包括Oracle和MySQL,这意味着无论你使用哪种数据库,都...
【CSharp C#代码生成器】是一个强大的工具,专为C#开发者设计,旨在提高开发效率,尤其是在处理大量数据操作和界面构建时。这个代码生成器可以自动生成用于Web应用程序和Windows Forms(Winform)应用的C#代码,极大...
代码生成器是一种强大的工具,它能够自动生成符合特定规范或模式的源代码,极大地提高了开发效率,降低了程序员的重复劳动。在IT行业中,代码生成器的应用广泛,尤其在大型项目或者需要大量标准化代码的场景下,如...
《Asp.net(C#)代码生成器源码详解》 在软件开发过程中,代码生成器是一种提高效率的重要工具,尤其在Asp.net(C#)框架下,它能够自动生成大量基础代码,帮助开发者快速构建应用的骨架。本文将深入探讨Asp.net(C#)...
java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ...
情书生成器是一种基于人工智能技术的应用程序,它能够根据用户输入的信息自动生成具有情感色彩的信件,通常用于表达浪漫的情感。在当前数字化时代,情书生成器利用自然语言处理(NLP)和机器学习算法,帮助那些不...
在IT行业中,短信内容生成器是一种实用工具,主要用于自动化生成短信文本,特别是在企业或服务提供商中,例如中国电信的无线工位。这样的工具可以显著提高工作效率,减少人为操作的错误,同时能够快速响应大规模的...
淘宝快递单号生成器2.0是一款专门设计用于模拟生成淘宝平台上的快递单号的工具。在电商行业中,每个订单都会关联一个独特的快递单号,以便于跟踪包裹的物流状态。这款生成器可以帮助用户快速创建测试数据,尤其对于...