首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

迭代器和生成器了解一下?

为什么昨天正常工作日没更?加班?NONONO。单纯的不想动,一个发呆玩了会。

之前在讲函数和切片的时候已经提到过Python的迭代器和生成器。但是这是中阶的内容了,也就一直没有讲。但是我最近发现其实包括我自己在内都没有用所谓的那些复杂的概念,心里先简单的被介绍一下,有个底好了。在给我一点时间,我真的打算找个时间把基础串着写一下。

迭代器:

其实在了解Python2的同学,我就是简单的了解了一下,有一个明显的改动就是很多生成列表的函数或者一些应用场合,都在Python3中变成了生成迭代器。很简单的解释就是省内存,腾空间。迭代是Python强大的原因之一。

迭代就是为了更方便的遍历,是一个可以记住遍历位置的对象。但是要记住迭代器只能前进不能后退,蛮像象棋中的“卒”。

最明显的特征就是用next(it)函数了。

这里可能大家想到,说好的只能向前不能向后,为什么取了List(3),又可以取List(2)呢,大家要记住这是两次取值了,并不是一次。

生成器:

这个相对较少见,我说的是相对,在使用了yield的函数被称为

生成器(generator)

说的蛮厉害的样子,其实你可以简单的理解生成器也是迭代器。他是一个返回迭代器的函数,只可以用于迭代操作。

yield语句

用于def函数中,用来生成数据供迭代器next(it)函数使用

如下图:

其实还有生成器表达式这里就不在介绍了,先对着两个概念有一些了解和一些特征掌握就可以了

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G1X1O700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券