生成器: 带有yield的函数

迭代器:带有next 方法的对象,可以作为内建函数next的参数

迭代对象:带有__iter__方法的对象,__iter__方法返回迭代器

-----------------------------------------------

迭代对象可以用for遍历

生成器是一种迭代器,生成器可以通过send方法与调用方双向沟通

迭代对象和迭代器的联系是:可以对迭代对象使用iter()方法来生成迭代器

----------------------------------------------

总结:

1.迭代器一定是迭代对象,迭代对象不一定是迭代器

2.生成器一定是迭代器,迭代器不一定是生成器

3.使用for...in...来遍历迭代对象是最常用的方式

------------------------------------------------------------

例如: python2里的xrange,python3里的range   是迭代对象,但不是迭代器,其__iter__返回一个生成器

所以不可以next(range(5)), 但是可以 next(iter(range(5)))

python 迭代器/生成器/迭代对象的更多相关文章

  1. Python——迭代器&可迭代对象

    可迭代对象 什么是对象: Python中,一切皆对象.一个变量,一个列表,一个字符串,文件句柄,函数等等都可称为一个对象.一个对象就是一个实例,就是实实在在的东西. 什么是迭代 迭代就是一个重复的过程 ...

  2. python迭代器,生成器,推导式

    可迭代对象 字面意思分析:可以重复的迭代的实实在在的东西. list,dict(keys(),values(),items()),tuple,str,set,range, 文件句柄(待定) 专业角度: ...

  3. Python迭代器生成器与生成式

    Python迭代器生成器与生成式 什么是迭代 迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果.每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭 ...

  4. python14 1.带参装饰器 | wrapper 了了解 # 2.迭代器 ***** # 可迭代对象 # 迭代器对象 # for迭代器 # 枚举对象

    ## 复习 '''函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 ...

  5. python 迭代器,生成器与推导式

    函数的动态传参 *args 动态接收所有位置参数 **kwargs 动态接收关键字参数 顺序: 位置参数, *args, 默认参数, **kwargs def func(*args, **kwargs ...

  6. Python生成器,迭代器,可迭代对象

    在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict ...

  7. what's the python之可迭代对象、迭代器与生成器(附面试题)

    可迭代对象 字符串.列表.元祖.集合.字典都是可迭代的,数字是不可迭代的.(可以用for循环遍历取出内部元素的就是可迭代的) 如何查看一个变量是否为可迭代: from collections impo ...

  8. Python的可迭代对象、迭代器和生成器

    可迭代对象(Iterable) 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.t ...

  9. Python 生成器, 迭代器, 可迭代对象的区别

    1.可迭代对象 在python中, 一切皆对象, 但凡是可以用for循环进行遍历取值的对象都可以称之为可迭代对象, 可迭代对象在程序的一个执行周期中,可以无限轮次的进行循环遍历 2.迭代器 a.一个可 ...

随机推荐

  1. 纪念又一次ak

    t1网络流 随便建个图就可以了 t2单调队列 分成两组来做 t3dp+高精度 为了不被卡厂用了万进制

  2. strtol 笔记

    今天看了一下网上关于这个函数的解释,根据文章大意记录一下 strtol 是将字符串转换为long int的一个函数 strtol(const char* nptr, char **endptr, in ...

  3. Struts2基本使用(一)--在项目中引入Struts2

    Struts2基本使用 在MVC开发模式中,Struts2充当控制器(Controller)的角色.其主要功能就是处理用户请求,生成响应,是连接视图层(View)和模型层(Model)的桥梁.在处理用 ...

  4. plsql的快速生成sql语句设置

    单 单击tool(工具)->的preferences(首选项)  ,进入到首选项页面 在点击user interface 的editor下的autoreplace 的edit按钮        ...

  5. 20181009-3 选题 Scrum立会报告+燃尽图 02

    Scrum立会报告+燃尽图(02)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2191 一.小组介绍 组长:刘莹莹 ...

  6. HDU 3746

    http://acm.hdu.edu.cn/showproblem.php?pid=3746 kmp的Nxet数组求字符串循环节例题 lenB%(lenB-Next[lenB])==0则其有周期len ...

  7. CNN中卷积层的计算细节

    原文链接: https://zhuanlan.zhihu.com/p/29119239 卷积层尺寸的计算原理 输入矩阵格式:四个维度,依次为:样本数.图像高度.图像宽度.图像通道数 输出矩阵格式:与输 ...

  8. 宏使用 Tricks

    人为地定义一些"无意义"的宏(宏名本身有意义),以起到提升代码程序的可读性. 1. IN/OUT 指定参数用于输入还是输出: #define IN #define OUT void ...

  9. Centos7 服务 service 设置命令 systemctl 用法 (替代service 和 chkconfig)

    在Centos 中 systemctl  是设置系统服务的命令,即 service  ,   它融合之前service和chkconfig的功能于一体. 可以使用它永久性或只在当前会话中启用/禁用服务 ...

  10. Spring的JDBC Template

    Spring的JDBC Template(JDBC模板)简化JDBC API开发,使用上和Apache公司的DBUtils框架非常类似) 快速入门实例 1.创建项目后,导入Spring基础核心开发包. ...