迭代.迭代器.生成器.Python

迭代

  如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历我们称为迭代 (Iteration)。

  可迭代:一个对象、物理或者虚拟存储的序列。

    list,tuple,strings,dictionary,set 以及生成器对象都是可迭代的,整数型是不可迭代的。那么,如何判断一个对象是可迭代对象呢?方法是通                           过 collections 模块的 Iterable 类型判断:

    

【在 Python 中可以使用 type() 与 isinstance() 这两个函数判断对象类型.】

    或者是:

    

    iter()list 返回了 listiterator 对象,为 dictionary 返回了dictionary-keyiterator 对象。类似的对其他可迭代类型也会返回迭代器对象。

    最后一个小问题,如果要对 list 实现类似 Java 那样的下标循环怎么办? Python 内置的 enumerate 函数可以把一个 list 变成索引-元素对,这样就可以                  在 for 循环中同时迭代索引和元素本身:

    

 迭代器

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

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

  

  生成器都是 Iterator 对象,但 listdictstr 虽然是 Iterable,却不是 Iterator

  把listdictstr 等 Iterable 变成 Iterator 可以使用 iter() 函数:

  

生成器

  Python 中,一边循环一边计算的机制,称为生成器:generator

  创建一个 generator:

  

  创建 和 的区别仅在于最外层的 []  ()是一个 list,而 是一个 generator

  『generator 保存的是算法

时间: 2024-11-08 12:00:45

迭代.迭代器.生成器.Python的相关文章

python之 可迭代 迭代器 生成器

0. 1.总结 (1) iterable 可迭代(对象) 能力属性 指一个对象能够一次返回它的一个成员,for i in a_list 而不需要通过下标完成迭代. 例子包括所有序列类型(list, str, tuple), 以及 dict, file, 还包括定义了 __iter__() 或 __getitem__() 方法的类实例. iterator 迭代器 具体实现 代表数据流的对象.重复调用迭代器的 next() (python3为 __next__()) 方法将依次返回流中的项.当没有更

可迭代-迭代器-生成器

如果获取的数据不是直接可以展示的结构---三种操作方式 如果获取的数据不是直接展示的结构,一下有三中方式 需要掌握的知识点: 1.yield返回的是一个生成器,只有在迭代的时候才会一个一个的被执行 问题: 2.什么是可迭代对象? 答:有__iter__方法的就是可迭代对象,返回的是一个迭代器,也可以返回一个生成器 3.什么是迭代器? 答:有__next__方法的就是迭代器,迭代器是往前一个一个的取值,但是不能生成值 4.什么是生成器 答:生成器是基于迭代器的,不仅取值还能生成值.被执行后返回的是

[python]--迭代器,生成器补充

在python中,list,string,dict都是可迭代对象,可以通过for语句遍历. 迭代器 迭代器对象要求支持迭代器协议的对象,在python中,支持迭代器协议就算实现对象的__iter__()和next()方法.其中__iter__()方法返回迭代器对象本身; next()方法返回容器的下一个元素,在结尾时引发StopIteration异常 __iter__()和next()方法 这两个方法是迭代器最基本的方法,一个用来获得迭代器对象,一个用来获取容器中的下一个元素. 对于可迭代对象,

python中的迭代、生成器等等

本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)(Iteration的中文意思就是:反复.重复.迭代等).而这些for循环所遍历的对象(list or tuple 等)成为可迭代对象(Iterable). 也就是说"迭代"就是一个动作或者过程,可以把list或tup

Python高级特性:Python迭代、生成器、列表生成式

迭代 给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历称为迭代(Iteration). 在java和C语言中,迭代是通过循环list的下标来完成的,Python中迭代的抽象程度更高,不仅可以迭代list和tuple,而且可以迭代任何可迭代对象,包括我们自己创建的数据类型,只要符合迭代条件,无论有无下标,都可以使用for循环. Python中的迭代是通过for -in -来完成的. 字典的迭代 比如字典就是可以迭代的: 1 >>> d = {'a

Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 迭代器&

python学习第十三天 迭代器 生成器

1.函数复习总结 # 函数 -- 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱),**kwargs # 站在实参的角度上 : 按照位置传,按照关键字传 # 返回值:没有返回值 返回一个值 返回多个值 # 接收返回值:没有返回值不接收,返回一个值用一个变量接收,返回多个值用一个变量或者对应数目的变量接收 # 闭包函数 -- 在内部函数引用外部函数的变量 # 装饰器函

python 全栈开发,Day13(迭代器,生成器)

一.迭代器 python 一切皆对象 能被for循环的对象就是可迭代对象 可迭代对象: str,list,tuple,dict,set,range 迭代器: f1文件句柄 dir打印该对象的所有操作方法 s = 'python' print(dir(s)) 执行输出: ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__

python之迭代器生成器和内置函数,匿名函数

今天学习了迭代器生成器以及内置函数和匿名函数,说实话有些懵圈,有些难度了. 一.迭代器和生成器 1.如何从列表.字典中取值的: index索引 for循环 凡是可以使用for循环取值的都是可迭代的 (1)可迭代协议:内部含有__iter__方法的都是可迭代的 (2)迭代器协议:内部含有__iter__方法和__next__方法的都是迭代器 什么是可迭代的:内部含有__iter__方法的都是可迭代的 什么是迭代器:迭代器=iter(可迭代的),自带一个__next__方法 可迭代最大的优势:节省内