python基础函数-迭代器与生成器

0 引子

这是一篇基础复习文档, 在写 python 脚本的时候, 确实感觉到 python 基础不扎实导致代码在运行时, 老是出现一些基础性的错误。因此决定接下来的一段时间对 python 的基础知识进行学习和巩固。

注意: 由于 python2 将会在不久之后失去支持, 官方也更推荐学 python3, 因此以下所有的知识点都是在 python3 上进行实践与学习。以下的 python 都可以默认为是 python3, 如果提到 python2 我会表明是 python2。

这篇是对python基础函数操作中的迭代器与生成器进行学习。

1 迭代器

迭代器是一个记住遍历位置的对象,字符串、列表或元组对象都可以用于创建迭代器。

在上例中, it 就是一个被 list 创建的迭代器, 通过 next 方法 it 可以循环的取出 list 中所有数据。除了通过已存在的对象创建迭代器意外,还可以自己创建一个迭代器类。

MyNumber 就是一个自定义的迭代器类, 它包含了两个方法 iter 和 next, iter 是创建迭代器的方法, 调用这个方法完成迭代器的初始化, 在 next 方法中则是不断的计算出迭代器的下一个值。

2 生成器

在 python 中, 一边循环一边计算的机制成为生成器。简单来说就是在初始化的时候数据并不是完整的,当你需要数据的时候,生成器就把数据计算出来返回。来看一个例子

在例子中, fibonacci 就是一个生成器函数,它返回一个迭代器对象,在接下来的循环中, 不断调用这个迭代器对象的 next 方法, 计算出下一个值。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180911G1PM4P00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券