迭代器

xiaoxiao2021-02-28  62

from collections import Iterable from collections import Iterator #列表生成式 li=list(x for x in range(10)) l=[x for x in range(6)] print(li) print(l) #可迭代对象 '''1.可以直接作用于for循环的对象统称为可迭代对象,我们称之为:Iterator 2.我们可以使用isintance()判断一个对象是否是Iterator对象 3.可以直接作用于for循环的数据类型有以下几种 a.集合数据类型:如list、tuple、dict、set和string b.生成器(generator):就是一个能返回迭代器的函数, 其实就是定义一个迭代算法,可以理解为一个特殊的迭代器。 ''' print(isinstance([1,2],Iterable)) print(isinstance((x*x for x in range(10)),Iterable)) print(isinstance((x*x for x in range(10)),Iterator)) #生成器:在Python中,这种一边循环一边计算的机制,称为生成器(Generator) #生成器的好处:不会一下子在内存中生成太多数据 #生成器表达式 print(sum(i for i in range(9999)))#几乎不占内存 #迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后出现StopIteration错误,表示无法返回下一个值 #迭代器:可以被next()函数调用并不断返回下一个值得对象成为迭代器(Iterator对象) #可以通过Iter()函数将list、tuple、dict、string转换为Iterator对象 print(isinstance(iter([1,2,3]),Iterator)) list1=iter([1,2,3]) print(next(list1))
转载请注明原文地址: https://www.6miu.com/read-2628903.html

最新回复(0)