如果有给定的List和tuple,用for循环来遍历这个list或者tuple。叫做迭代。
在Python中,可迭代的定义比C和Java中要更广泛。
不仅是list,tuple,在python中,dict和字符串也是可以迭代的。
语法:for key in ‘ABC’
当我们要使用for循环的时候,只要对象是个可迭代对象,for循环就可以执行。
这时候,我们可以使用通过collections模块的Iterable类型来判断对象是否是个可迭代对象。
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
如果希望python对list使用Java一样的下标循环,可以使用Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
练习
请使用迭代查找一个list中最小和最大值,并返回一个tuple:
def findMinAndMax(L):
if L!=[]:
max = L[0],
min = L[0],
for i in L:
if max<L[i]:
max = i
if min>L[i]:
min = i
return (max,min)
else:
return(None,None)