这篇文章主要介绍了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
终止但不放弃IPO 3年半亏损近8亿的云知声上市有多难?

终止但不放弃IPO 3年

披露招股书一百多天后,以智能语音技术为核心的AI公司云
社区团购大战中,兴盛优选是何种角色?

社区团购大战中,兴盛优

即使互联网巨头选择2020年进场,且投入力度之大给了人一
朱啸虎谈ClubHouse:更像早期的知乎 模式适合高举高打

朱啸虎谈ClubHouse:更

朱啸虎认为,ClubHouse更像早期的知乎。
雷军造车蓄谋已久,小米与苹果狭路相逢

雷军造车蓄谋已久,小米

距离公司高管明确表示不造车仅过去3个月时间,小米对造
映客奉佑生:语音社交有望重构线下会议和微信群关系链

映客奉佑生:语音社交有

映客创始人奉佑生和金沙江创投董事总经理朱啸虎等人今
百度VS小米,谁能造出年轻人第一辆智能车?

百度VS小米,谁能造出年

造车难道是个很低门槛的事吗,怎么人人都要来分一杯羹?百
最新文章
在pycharm中为项目导入anacodna环境的操作方法

在pycharm中为项目导

这篇文章主要介绍了在pycharm中为项目导入anacodna环
tensorflow的ckpt及pb模型持久化方式及转化详解

tensorflow的ckpt及pb

今天小编就为大家分享一篇tensorflow的ckpt及pb模型持
PyTorch笔记之scatter()函数的使用

PyTorch笔记之scatter

这篇文章主要介绍了PyTorch笔记之scatter()函数的使用
python3实现网页版raspberry pi(树莓派)小车控制

python3实现网页版ras

这篇文章主要为大家详细介绍了python3实现网页版raspb
完美解决pycharm导入自己写的py文件爆红问题

完美解决pycharm导入

今天小编就为大家分享一篇完美解决pycharm导入自己写
pycharm内无法import已安装的模块问题解决

pycharm内无法import

今天小编就为大家分享一篇pycharm内无法import已安装