Python语言编程中迭代器是,python中迭代器和生成器的区别
一。介绍
迭代器是一种用来迭代值的工具,而迭代是一种重复反馈过程的活动,其目的通常是为了逼近期望的目标或结果。过程的每次迭代称为一次迭代,每次迭代得到的结果将作为下一次迭代的初始值。简单的重复不是迭代。
While true: msg=input(:)。strip () print (msg)下面的while循环是一个迭代过程,不仅满足重复,而且将每次重新赋值后的索引值作为下一次循环的新索引来取值。经过反复迭代,终于可以穷尽列表中的值。
Goods=[MAC , Lenovo , Acer , Dell , dony ]index=0 while index len(goods):print(goods[index])index=1 1.1迭代对象
通过索引进行迭代值选择很容易实现,但只适用于序列类型:字符串、列表、元组。对于没有索引的字典、集合等非顺序类型,需要找到一种不依赖索引的方法来迭代值,所以使用迭代器。
要想知道迭代器是什么,必须事先知道一个非常重要的概念:Iterable object。从语法上讲,所有带有__iter__方法的对象都是可迭代的。对象、字符串、列表、元组、字典、集合和打开的文件都是可迭代的。
A=赵薇 b=[1,2,3] c=(1,2,3) d={a: 1, b: 2} e={a , b , c} with open (a.txt,mode=)
调用obj返回的结果。Iterator()方法是一个迭代器对象。迭代器对象是内置迭代器和next方法的对象,打开的文件本身就是迭代器对象。执行迭代器对象。iterator()方法在执行迭代器时仍然获取迭代器本身。next()方法将计算迭代器中的下一个值。Iterator是python提供的一种统一的、独立于索引的迭代取值方法。只要有多个值,不管是序列类型还是非序列类型,值都可以作为迭代器。
S={1,2,3} #迭代对象s i=iter(s) #本质上是在调用s.__iter__(),返回s的迭代器对象I . next(I)#本质上是在调用I. _ _ next _ () 1Next (I) 2Next (I) 3 .
使用迭代器,我们可以独立于索引获得值。while循环实现如下。
Goods=[MAC , Lenovo , Acer , Dell , Sony ]I=ITER(goods)while true:try:print(next(I))except stop iteration:# catching exception终止循环的循环中断称为迭代循环,in中任何iterable对象都可以跟在后面。以上所述
Goods=[MAC , Lenovo , Acer , Dell , Sony ]for iterator in globals():print(iterator)for loop工作时会调用iterable对象Goods内置的迭代方法得到一个iterable对象,然后调用iterable对象的下一个方法将得到的值赋给item执行一次循环体。
迭代器的优点和缺点
基于索引的迭代值将所有迭代的状态保存在索引中,而基于迭代器的迭代方法不再需要索引,所有迭代状态都保存在迭代器中。然而,这种方法有利也有弊。
3.1优势:
1.它为序列和非序列提供了统一的迭代方法。
2.惯性计算:迭代器对象代表一个数据流,只能在需要计算一个值的时候调用next。就迭代器本身而言,同一时间内存中只有一个值,所以可以存储无限个数据流。对于其他容器类型,比如列表,所有元素都需要存储在内存中。由于内存大小的限制,可以存储的值的数量是有限的。
3.2缺点:
1.迭代器的长度除非用尽,否则无法获得。
2.只能取一个值,不能回到起点。更像是‘一次性’的。爸爸安全产生后的唯一目标就是反复执行方法,直到值用尽,否则你就停留在某个位置,等待下一次对next的调用;如果要再次迭代同一个对象,只能再次调用iter方法创建一个新的iterator对象。如果有两个或更多的循环使用同一个迭代器,只有一个循环会得到值。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。