手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

python迭代器生成器

时间:2024-11-04 16:45:56

1、python iterator 迭代器,只要定义了next或者__next__方法就是迭代器,迭代器提供了一个统一的访问集合的接口。只要是实现了__iter__()或_忧溲枷茫_getitem__()方法的对象,就是可以迭代对象,就可以使用迭代器进行访问,Python提供了两个通用迭代器对象。第一个是序列迭代器,它支持__getitem__()方法的任意序列。第二个使用可调用对象和一个sentinel值,为序列中的每个项调用callable,并在返回sentinel值时结束迭代。如下l1是一个可迭代对象,It1是生产的迭代器

python迭代器生成器

2、我们通过代码来理解下迭代器l1=[1,2,3,4,5] 可以迭代的对象It1=l1.__iter__() 生产迭代器print(It1) 这里会输出 迭代器对象 ,<listiterator object at 0x00000000031DEEB8>print It1.next() 第一个元素print It1.next() 第二个元素具体输出如图二所示

python迭代器生成器
python迭代器生成器

3、迭代对象也可以这样被迭代器迭代输出,如下所示我们把两种方式比士嫣轶嗄较下l1=[1,2,3,4,5]It1=l1.__iter__()It2=iter(l1) 使用iter方法生成print(It1)print(It2)这里会输出 迭代器对象print It1.next()print It1.next()print It2.next() 输出第一元素print(It2.next())输出第二元素具体输出如图二,代码如图一所示

python迭代器生成器
python迭代器生成器

4、对迭代器和迭代对象有了认识下面我们看看生成器Generator,Generator对象是Python用来实现迭代器的生成对象。它们通常是通过迭代产生值的函数而不是创建对象,其实生成器也是迭代器的一种形式,如下Ge就是我定义的一个生成器

python迭代器生成器
python迭代器生成器

5、生成器操作,我们对我们定义的Ge进行输出操作,如下使用next方法进行输出Ge=(a*a for a in range(10))print(Geprint Ge.next() 输出元素一print Ge.next()输出元素二print Ge.next()输出元素三

python迭代器生成器
python迭代器生成器

6、对于生成器,通常情况我们使用for循环来输出,而不是nextfor g in Ge : print(g)依次输出,细心的朋友会发现,for是从next之后开始迭代输出的

python迭代器生成器
python迭代器生成器

7、yield在 Python 中被称之为 generator 生成器我们看下yield的使用def Gen_erator(): for g1 in range(10): yield g1print Gen_erator()ge=Gen_erator()print(ge)我们会发现 ge就是个生成器 ,通过yield我们可以把计算保存在生成器中,减少内存使用

python迭代器生成器
python迭代器生成器
© 手抄报圈