1.迭代器

迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。

2.可迭代对象(for 循环遍历的数据类型)

  • 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等。

  • 一类是 generator(列表生成式,生成器) ,包括生成器和带 yield 的generator function。

  • 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。

from collections import Iterable
# 如果可以迭代就返回True
isinstance([ ], Iterable)

3.判断是否可以迭代

可以使用isinstance()判断一个对象是否是Iterable对象:

from collections import Iterable
# 如果可以迭代就返回True
isinstance([ ], Iterable)

而生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。

4.迭代器

  • 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

  • 可以使用isinstance()判断一个对象是否是Iterator对象。

  • 生成器(i for i in range(10))一定是迭代器,但迭代器不一定是生成器。

  • 迭代器一定是可迭代对象,但可迭代对象不一定是迭代器。

from collections import Iterator
isinstance((x for x in range(10)), Iterator)  # 如果是的话就返回True

5.iter()函数

生成器都是Iterator(迭代器)对象,但 list、dict、str虽然是Iterable(可迭代),却不是Iterator(迭代器)。

把list、dict、str 等 Iterable(可迭代)变成 Iterator(迭代器)可以使用iter()函数,就好比人可以游泳,但不是天生就会,可迭代对象就好比人,迭代器就好比会游泳的人,需要经过iter()训练一样。

isinstance(iter([ ]), Iterator)
True

Python迭代器是什么?相关推荐

  1. python迭代器生成器 学会再缩短一半开发效率 看看大牛是怎么写的

    一.迭代 什么叫做迭代? 比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素,在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历 ...

  2. 简单介绍python迭代器和生成器

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...

  3. python迭代器使用_python迭代器的使用方法实例

    什么是迭代器?迭代器是带有next方法的简单对象,当然也要实现__iter__函数.迭代器能在一序列的值上进行迭代,当没有可供迭代时,next方法就会引发StopIteration 的异常.pytho ...

  4. python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍

    Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...

  5. python迭代器与生成器答案_史上最全 Python 迭代器与生成器

    原标题:史上最全 Python 迭代器与生成器 作者:浪子燕青 链接:http://www.langzi.fun/迭代器与生成器.html 迭代器与可迭代对象 概念 迭代器:是访问数据集合内元素的一种 ...

  6. Python 迭代器和 C++ 迭代器,最大的不同竟然是......

    作者 | 樱雨楼 责编 | 胡巍巍 前言 迭代器(Iterator)是 Python 以及其他各种编程语言中的一个非常常见且重要,但又充满着神秘感的概念.无论是 Python 的基础内置函数,还是各类 ...

  7. [转载] python迭代器

    参考链接: Python迭代器 迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器有两个基本的方法:iter() 和 next(). 使用对象内置的__iter__()方法生成迭代器 it = n ...

  8. python迭代器_Python迭代器

    python迭代器 Good day learners! In our previous tutorial, we learned about Python Operator Overloading. ...

  9. python迭代器的设计

    2019独角兽企业重金招聘Python工程师标准>>> python迭代器的设计 跟黄哥学python编程系列文章之迭代器 如何自定义迭代器,有2个必要条件 1.自定义类有一个方法_ ...

  10. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

最新文章

  1. NN如何在表格数据中战胜GBDT类模型
  2. python 读取文件
  3. 都说它是年度Android机皇,【上手】都说它是年度Android机皇,Galaxy Note10到底怎么样?...
  4. 第一次作业之成员介绍
  5. python类中没有属性_如何在python语言中在类中删除属性和添加属性
  6. 编写超级可读代码的15个最佳实践
  7. Java-当前对象this
  8. 成为最差前端开发的10个建议,唉!传递负能量了
  9. java实现梯度异步通知,BIO原理及代码实现
  10. linux能安装cad快速看图不,ubuntu下能过wine安装cad快速看图
  11. php ios表情包,[iOS] 自定义表情包
  12. javascript初级动态效果之使用原生js实现轮播图效果
  13. 小程序loding动画组件封装及源码
  14. python eel vue_张莽子—
  15. 嵌入式软件测试——1.简介
  16. 力扣(144.94)补9.4
  17. 法硕(非法学)进入红圈所究竟有多难?
  18. 细细品味C#——抽象、接口、委托、反射
  19. 程序员惨遭996,注册Github域名炮轰996工作模式
  20. Linux7修改网卡为eht0

热门文章

  1. CAD文件转PDF格式后有白底怎么办?
  2. 计算机启动后无法进入系统怎么办,电脑开机无法进入系统怎么办
  3. 阿里云ECS服务器按量付费实例怎么释放?
  4. [M1]Daily Scum 9.27
  5. 欢迎来到全民口罩自制时代!
  6. 关于VC++6.0显示“不能启动工具,操作成功完成”问题
  7. error C2679: binary ‘<<‘ : no operator defined which takes a right-hand operand of type ‘class s
  8. sortBy和sortByKey区别
  9. python两个csv表数据合并_python – 根据列中的数据合并两个CSV文件
  10. html依次显示选中的值,html 快速布局 - osc_pw143nru的个人空间 - OSCHINA - 中文开源技术交流社区...