Iterable

Iterable是Python集合的一种,导入方式为from collections import Iterable。Iterable对象都具有__iter__()方法,可以被for循环。例如list,tuple,dictionary,string都是Iterable。
Iterator
Iterable也是Python集合的一种,导入方式为from collections import Iterator。Iterator是Iterable的子类,Iterator对象都具有__iter__()和__next__()方法,Iterator可以通过next()获取其下一个数据。
Iterator的生成方式是通过iter()方法,或为类定义__iter__()和__next__(),从而使类成为Iterator。
Generator
Generator也是Python集合的一种,导入方式为from collections import Generator。Generator是Iterator的子类
Generator的生成方式是通过带yield的函数或()表达式。
一张图概括上面的继承关系:
  导入方式 举例
Iterable from collections import Iterable

from collections import Iterable, Iterator, Generator

l1 = [1, 2, 3] # List是Iterable,但不是Iterator

isinstance(l1, Iterable) # True

isinstance(l1, Iterator) # False

Iterator from collections import Iterator

it1 = iter([1, 2, 3]) # it1是Iterator

isinstance(l1, Iterable) # True

isinstance(l1, Iterator) # True

Generator from collections import Generator

g1 = (i for i in [1, 2, 3]) # g1是Generator

isinstance(g1, Iterable) # True

isinstance(g1, Iterator) # True

isinstance(g1, Generator) # True

Python笔记-Collection中Iterable、Iterator和Generator的区别相关推荐

  1. Python笔记 · Airflow中的DAG与With语法

    在<Python笔记 · With语法糖>这篇文章中我们提到: 在Airflow中通过With构建DAG时,不必显示地将Operator添加到DAG中,只要是在With语句块内声明的Ope ...

  2. 【Python笔记】class, class()和class(object)的区别

    1 为什么要继承 object 类 Python2中, 遇到 class A 和 class A(object) 是有概念上和功能上的区别的,分别称为经典类(旧式类,old-style)与新式类(ne ...

  3. anaconda如何做python笔记_Anaconda中Jupyter的基本使用 简单的编写Python代码和整理笔记...

    Anaconda是一个基于数据分析和机器学习的集成环境.jupyter是anaconda提供的一个基于浏览器的可视化开发工具.也就是说我们安装好Anaconda就可以使用jupyter. jupyte ...

  4. python甲鱼怎么修改,跟小甲鱼自学python笔记 更新中…

    看完这些笔记自己就可以入门Python了 在B站上看小甲鱼的视频,顺便整理一下自己的笔记. 第十课 列表 1.列表中可以存放一些什么东西? 在列表中可以存放整数.浮点数.字符串.对象-甲鱼粉说Pyth ...

  5. Python笔记-BeautifulSoup中find_all的使用及str中trim()

    实例是这样的: 将titile和Cost提取,出来 代码如下: from urllib.request import urlopen from bs4 import BeautifulSoupif _ ...

  6. python笔记—文件中的f.readline()方法解析

    ** 首先一般解读是 f.readline() :从文件中读取一整行字符串(包括末尾的换行'\n') 通过例子具体来看 1. 编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏 ...

  7. Python笔记-UiSelector中class定位

    这里有3种选择方式. 第一个是className匹配方式 import uiautomator2 as u2d = u2.connect_usb("8681-A01-0xc60fcc9d&q ...

  8. Python笔记-UiSelector中resourceId定位方式

    这里以豌豆荚为例,通过资源ID进行定位: 从中可以看到对应的下标为0,1,2,3,4: 这里是使用resourceId进行定位的: 第一种定位方式: import uiautomator2 as u2 ...

  9. pandas中如何选取某几列_【python】pandas中 loc amp; iloc用法及区别

    在刚学习Python的时候,对于loc.iloc.at.iat.ix有点混乱,没有进行过整理和梳理.所以针对这几种用法进行一次案例的整理.本次优先整理loc和iloc SQL中的select是根据列的 ...

最新文章

  1. CPU消耗,跟踪定位理论与实践
  2. NAP客户端计算机隔离测试之五
  3. cannot resolve symbol ‘R‘ 程序包R不存在
  4. GitHub 上值得前端学习的数据结构与算法项目
  5. PHP获取浏览器版本号
  6. mongoDB 特别指令用法
  7. 光盘装系统和U盘装系统有什么区别吗?
  8. cadsee plus看图纸 7.2.0.1
  9. java 3dm_3dm游戏运行库合集安装包-游戏运行库合集安装包下载v3.0DM整理-西西软件下载...
  10. npm加速器、github加速器
  11. C++ ODB学习(阿里云服务器测试)
  12. 选用数显仪表要注意的问题
  13. CCF中有关计算机网络的顶级会议和推荐期刊(2019年版本)
  14. 《数学之美(第一版)》笔记 —— 第6章
  15. Mac无法开机?如何修复并使其重新启动
  16. 文献翻译平台(自用)
  17. 小人数字时钟安卓版本APP
  18. 数据结构大致包含以下几种存储结构:
  19. some words from website
  20. 线程wait、join用法

热门文章

  1. webpack入门系列2
  2. 实验 7:流类库与输入输出
  3. java 泛型--桥方法
  4. 当你从事不喜欢的事怎么办
  5. JavaScript 表单验证
  6. ImportError: cannot import name 'is_string_like'
  7. ROS:Nvidia Jetson TK1平台安装使用ROS
  8. webpack构建Vue项目引入jQ时发生“'$' is defined but never used”的处理
  9. 优化体系结构 - 解决多样性数据源
  10. 未来大数据的处理和发展的五个趋势