Python yield生成器和return对比代码实例


Posted in Python onApril 20, 2020

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

生成器是特殊的迭代器

def gen_yield():
  for i in range(1,10):
    for j in range(1,10):
      yield i+j
      # return i+j

if __name__ == '__main__':
  aa = gen_yield()
  print(aa.__next__())
  print(aa.__next__())
  print(aa.__next__())
  print(aa.__next__())
  print(aa.__next__())
  print(aa.__next__())

yield和return都有返回值的作用,但不同的是,yield会记住当前迭代的位置,而return不会

如果还是不能很好的理解上面两者的区别,看如下代码

def test_yield():
  for i in [1,2,3]:
    yield i
def test_return():
  for i in [1,2,4]:
    return i
if __name__ == '__main__':
  test_yield_obj = test_yield()
  print('这里测试yield')
  print(test_yield_obj.__next__())  # 1
  print(test_yield_obj.__next__())  # 2
  print(test_yield_obj.__next__())  # 3

  print('这里是测试return')
  print(test_return())  # 1
  print(test_return())  # 1
  print(test_return())  # 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
Python文件处理
Feb 29 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
hmac模块生成加入了密钥的消息摘要详解
Jan 11 Python
python自动生成model文件过程详解
Nov 02 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
py-charm延长试用期限实例
Dec 22 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
python使用QQ邮箱实现自动发送邮件
Jun 22 Python
通过代码实例了解Python异常本质
Sep 16 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 #Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 #Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 #Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 #Python
python argparse模块通过后台传递参数实例
Apr 20 #Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 #Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 #Python
You might like
php,ajax实现分页
2008/03/27 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
详解python时间模块中的datetime模块
2016/01/13 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
员工自我鉴定范文
2013/10/06 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
上班迟到检讨书
2014/01/10 职场文书
建议书怎么写
2014/03/12 职场文书
军训口号
2014/06/13 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
任命书格式范文
2015/09/22 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
Python实现数据的序列化操作详解
2022/07/07 Python