python中迭代是什么意思,python实现迭代
给定一个列表或元组,我们可以通过一个for循环遍历该列表或元组,这称为迭代。
在Python中,迭代是由for完成的.在中,而在许多语言中,如C,迭代列表是由下标完成的,如Java代码:
for(I=0;ilist.lengthi ){
n=列表[I];
}可以看出Python的for循环比C的for循环更抽象,因为Python的for循环不仅可以用在list或tuple上,还可以用在其他可迭代对象上。
尽管列表数据类型有下标,但许多其他数据类型没有下标。但是,只要它是一个可迭代的对象,无论有没有下标都可以迭代。例如,dict可以迭代:
d={a:1, b:2, c:3}
forkeyind:
.打印(键)
.
a
c
因为b dict的存储不是按照链表的顺序,所以迭代结果的顺序很可能不一样。
默认情况下,dict迭代键。如果要迭代value,可以在d.values()中使用for value。如果要同时迭代key和值,可以在d.items()中使用for k,v。
由于字符串也是可迭代对象,它们也可以作用于for循环:
forchinABC:
.打印(ch)
.
A
B
所以,我们在使用for循环的时候,只要作用在iterable对象上,for循环就可以正常运行,我们并不太在乎对象是列表还是其他数据类型。
那么,如何判断一个对象是否是迭代对象呢?该方法由集合模块的可迭代类型来判断:
fromcollectionsimportIterable
isinstance(abc ,Iterable)#str iterable?
真实的
isinstance ([1,2,3],iterable) # list是否可迭代?
真实的
isinstance(123,Iterable)# integer是否可迭代?
真一个假的小问题,如果你想在链表上实现一个类似Java的下标循环呢?Python内置的enumerate函数可以将一个列表变成一个索引-元素对,这样索引和元素本身就可以在for循环中同时迭代:
fori,valueinenumerate([A , B , C]):
.打印(I,值)
.
得一个例子
1B
在2C以上的for循环中,同时引用了两个变量,这在Python中是很常见的,比如下面的代码:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。