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

 更新时间:2020年04月20日 15:59:38   作者:小陆同学  
这篇文章主要介绍了Python yield生成器和return对比代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

迭代是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 检查是否为中文字符串的方法

    python 检查是否为中文字符串的方法

    今天小编就为大家分享一篇python 检查是否为中文字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python使用jpype导入多个Jar的异常问题及解决

    python使用jpype导入多个Jar的异常问题及解决

    这篇文章主要介绍了python使用jpype导入多个Jar的异常问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python线程池ThreadPoolExecutor,传单个参数和多个参数方式

    python线程池ThreadPoolExecutor,传单个参数和多个参数方式

    这篇文章主要介绍了python线程池ThreadPoolExecutor,传单个参数和多个参数方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python通过getopt模块如何获取执行的命令参数详解

    python通过getopt模块如何获取执行的命令参数详解

    这篇文章主要给大家介绍了关于python通过getopt模块如何获取执行的命令参数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • python logging 日志的级别调整方式

    python logging 日志的级别调整方式

    今天小编就为大家分享一篇python logging 日志的级别调整方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Kmeans均值聚类算法原理以及Python如何实现

    Kmeans均值聚类算法原理以及Python如何实现

    这个算法中文名为k均值聚类算法,首先我们在二维的特殊条件下讨论其实现的过程,方便大家理解。
    2020-09-09
  • python网络爬虫学习笔记(1)

    python网络爬虫学习笔记(1)

    这篇文章主要为大家详细介绍了python网络爬虫学习笔记的第一篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • pycharm2020.2 配置使用的方法详解

    pycharm2020.2 配置使用的方法详解

    这篇文章主要介绍了pycharm2020.2 配置使用的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • python groupby函数实现分组后选取最值

    python groupby函数实现分组后选取最值

    这篇文章主要介绍了python groupby函数实现分组后选取最值,文章围绕主题相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Django加载配置的过程详解

    Django加载配置的过程详解

    这篇文章主要介绍了Django加载配置的过程详解,包括Django服务启动 manage.py的详细介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05

最新评论