python----yield(generator)生成器
在python编程中
很多时候都需要用到函数
函数可以产生值并通过return返回
但是后时候函数里面产出的值不只有一个
例如:
情景一:
def show_num():for n in "12345":print(n)
a = show_num()
print(a)
1
2
3
4
5
None
可以看到,上面的函数会把for循环里得出的所有的结果打印出来,但是函数本身不会返回任何值,这样的话函数的重用率就会变得非常低。
情景二:
def show_num():list = []for n in "12345":list.append(n)return list
a = show_num()
print(a)
['1', '2', '3', '4', '5']
如果想返回for循环里面的所有数值,需要把for循环里面得出的数值写进一个列表里面,然后函数最后返回这个列表。
但是随着数据的增多,列表的长度也会随着增加,这个内存的使用就会越来越大。因此一般不建议这样操作。
情景三:
def show_num():for n in "12345":yield n
a = show_num()
print(a)
<generator object show_num at 0x7f7da13a2a98>
使用了yield之后,这个函数就会变成一个(generator)生成器,他的意思是,for循环的每一次迭代中都会暂停一下,并输出当前的迭代值。
当第一次迭代时候,n=1,这个时候yield会暂停整个for循环,并返回当前n的值,也就是1.
因此,我们可以这样运用(generator)生成器。
def show_num():for n in "12345":yield nfor n in show_num():print(n)
1
2
3
4
5
转载于:https://www.cnblogs.com/QicongLiang/p/10329679.html
python----yield(generator)生成器相关推荐
- 7、【转载】python yield generator 详解
7.[转载]python yield generator 详解 目录 generator基础 generator应用 generator基础应用 generator高级应用 注意事项: 正文 本文将由 ...
- Python yield generator
http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/, Python yield 使用浅析 这篇说的很清楚 主要看到F ...
- python生成器yield原理_Python generator生成器和yield表达式详解
前言 Python生成器(generator)并不是一个晦涩难懂的概念.相比于MetaClass和Closure等概念,其较为容易理解和掌握.但相对于程序结构:顺序.循环和分支而言其又不是特别的直观. ...
- Python中的生成器与yield
对于python中的yield有些疑惑,然后在StackOverflow上看到了一篇回答,所以搬运过来了,英文好的直接看原文吧. 可迭代对象 当你创建一个列表的时候,你可以一个接一个地读取其中的项.一 ...
- Python迭代器和生成器详解(包括yield详解)
文章目录 一.迭代器 1. 可迭代对象(Iterable) 2. 迭代器对象(Iterator) 3. for 循环原理 4. 迭代器的优缺点 二.生成器 1. yield 原理 2. yield 和 ...
- python做投标生成器_Python 生成器(generator)详细总结+示例
简介 生成器(generator)是一种返回一个值的迭代器,每次从该迭代器取下一个值. 生成器有两种表示: 生成器表达式 生成器函数 生成器函数还包括一下内容: 通用生成器 协程生成器 委托生成器 子 ...
- 学习笔记(37):Python实战编程-yield实现生成器
立即学习:https://edu.csdn.net/course/play/19711/255579?utm_source=blogtoedu 1.yield = return + generator ...
- python学习笔记-day6-函数的延续【汉字转拼音模块,函数返回多个值,匿名函数,列表生成式,generator生成器,三元运算符】...
继续来说函数的后续知识点,主要是函数返回多个值,匿名函数,三元运算符,算是比较小的知识点. 一.汉字转拼音模的使用 1.安装模块 #install xpinyin 2.如果使用 结果: 二.函数返回多 ...
- python基础(迭代器,生成器,装饰器)
python: 生成器: 因为当列表元素达到一定上限,列表会占很大内存空间来存储,所以列表是受到内存限制的来适当使用. 生成器可以按照一个算法,循环推导出元素,就不用一次生成整个列表,而通过生成器(g ...
- 简单介绍python迭代器和生成器
这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...
最新文章
- 下载银海浏览器_【教师研培】停课不停学 停课不停研 ——记银海学校全体英语教师参加市教科院“超越时空 传递智慧”第二轮教研直播活动...
- CF--思维练习-- CodeForces - 215C - Crosses(思维题)
- 性格决定命运--从流浪汉到亿万富翁[taylor]
- 样条曲面_用SolidWorks曲面制作一个:台灯底座造型
- pycharm error:no module named caffe
- php装逼的面试问题,面试读心术,教你如何优雅的在面试官前装逼
- 【转】Java集合间的相互转换
- AV系统类毕业论文文献有哪些?
- 《网络是怎样连接的》了解网络连接的全貌
- 基于Spark的GBDT + LR模型实现
- OneApiConnect(一) Fins欧姆龙通讯协议实现源代码
- melp算法matlab,svpwm过调制算法研究与实现 [MELP声码器的算法研究及实现]
- 个税计算公式excel_我月薪1万,为啥个税只交150块捏?
- IEEE802.3-2015 CL78 节能以太网(EEE)要点翻译
- 2021-02-22
- Datawhale | 高级算法梳理第六期 Task3【XGB算法梳理】3天
- SP专场问题整理(一)
- 深度学习(一):什么是深度学习
- Pandas库基本使用
- Putty的噩梦——渗透工具PuttyRider使用心得分享