在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)生成器相关推荐

  1. 7、【转载】python yield generator 详解

    7.[转载]python yield generator 详解 目录 generator基础 generator应用 generator基础应用 generator高级应用 注意事项: 正文 本文将由 ...

  2. Python yield generator

    http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/, Python yield 使用浅析 这篇说的很清楚 主要看到F ...

  3. python生成器yield原理_Python generator生成器和yield表达式详解

    前言 Python生成器(generator)并不是一个晦涩难懂的概念.相比于MetaClass和Closure等概念,其较为容易理解和掌握.但相对于程序结构:顺序.循环和分支而言其又不是特别的直观. ...

  4. Python中的生成器与yield

    对于python中的yield有些疑惑,然后在StackOverflow上看到了一篇回答,所以搬运过来了,英文好的直接看原文吧. 可迭代对象 当你创建一个列表的时候,你可以一个接一个地读取其中的项.一 ...

  5. Python迭代器和生成器详解(包括yield详解)

    文章目录 一.迭代器 1. 可迭代对象(Iterable) 2. 迭代器对象(Iterator) 3. for 循环原理 4. 迭代器的优缺点 二.生成器 1. yield 原理 2. yield 和 ...

  6. python做投标生成器_Python 生成器(generator)详细总结+示例

    简介 生成器(generator)是一种返回一个值的迭代器,每次从该迭代器取下一个值. 生成器有两种表示: 生成器表达式 生成器函数 生成器函数还包括一下内容: 通用生成器 协程生成器 委托生成器 子 ...

  7. 学习笔记(37):Python实战编程-yield实现生成器

    立即学习:https://edu.csdn.net/course/play/19711/255579?utm_source=blogtoedu 1.yield = return + generator ...

  8. python学习笔记-day6-函数的延续【汉字转拼音模块,函数返回多个值,匿名函数,列表生成式,generator生成器,三元运算符】...

    继续来说函数的后续知识点,主要是函数返回多个值,匿名函数,三元运算符,算是比较小的知识点. 一.汉字转拼音模的使用 1.安装模块 #install xpinyin 2.如果使用 结果: 二.函数返回多 ...

  9. python基础(迭代器,生成器,装饰器)

    python: 生成器: 因为当列表元素达到一定上限,列表会占很大内存空间来存储,所以列表是受到内存限制的来适当使用. 生成器可以按照一个算法,循环推导出元素,就不用一次生成整个列表,而通过生成器(g ...

  10. 简单介绍python迭代器和生成器

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...

最新文章

  1. 下载银海浏览器_【教师研培】停课不停学 停课不停研 ——记银海学校全体英语教师参加市教科院“超越时空 传递智慧”第二轮教研直播活动...
  2. CF--思维练习-- CodeForces - 215C - Crosses(思维题)
  3. 性格决定命运--从流浪汉到亿万富翁[taylor]
  4. 样条曲面_用SolidWorks曲面制作一个:台灯底座造型
  5. pycharm error:no module named caffe
  6. php装逼的面试问题,面试读心术,教你如何优雅的在面试官前装逼
  7. 【转】Java集合间的相互转换
  8. AV系统类毕业论文文献有哪些?
  9. 《网络是怎样连接的》了解网络连接的全貌
  10. 基于Spark的GBDT + LR模型实现
  11. OneApiConnect(一) Fins欧姆龙通讯协议实现源代码
  12. melp算法matlab,svpwm过调制算法研究与实现 [MELP声码器的算法研究及实现]
  13. 个税计算公式excel_我月薪1万,为啥个税只交150块捏?
  14. IEEE802.3-2015 CL78 节能以太网(EEE)要点翻译
  15. 2021-02-22
  16. Datawhale | 高级算法梳理第六期 Task3【XGB算法梳理】3天
  17. SP专场问题整理(一)
  18. 深度学习(一):什么是深度学习
  19. Pandas库基本使用
  20. Putty的噩梦——渗透工具PuttyRider使用心得分享

热门文章

  1. html定义好的css样式不能被渲染
  2. Hadoop集群管理与NFS网关
  3. 解决无法创建txt文档
  4. 面试官:kill -9 进程杀不掉,怎么办?
  5. 在 Windows 上直接运行 Linux,有命令行就是贼香
  6. 为什么“无人问津”的Lisp可以这么狂?
  7. 埋在 MySQL 数据库应用中的17个关键问题!
  8. 左耳朵耗子论微服务 Serverless 及 FaaS | GIAC 访谈
  9. 1.深度好文:带缓冲I/O 和不带缓冲I/O的区别与联系
  10. Android --- Android layout属性应有尽有