1.何为迭代:
对于给定list或者tuple,通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration).
2.python中利用for...in语句来完成迭代语句:
(1)迭代list:
使用for...in语句迭代list时,是通过下标完成的,迭代tuple类似
>>>months=['January','February','March']>>>for i in range(len(months)): print(months[i])JanuaryFebruaryMarch
(2)迭代dict:
首先明确,list这种数据类型是有下标的,但是像dict这种没有没有下标的数据类型,同样是可以进行迭代的,只要该数据类型是可迭代对象,比如就迭代dict的方法如下:
>>>d = { '小明':0,'小红':65,'小兰':88}>>>for key in d: print(key) --------------------------------------------------------------------------------小明小兰小红
注意:a.因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
b.dict迭代,在默认情况下迭代的key,如果想要迭代value可以用for value in d.values(),
如果要同时迭代key和value,可以用for k, v in d.items()。
迭代value情况:
>>>d = { '小明':0,'小红':65,'小兰':88}>>>for value in d.values(): print(value)-----------------------------------------------------------------------------------65088
同时迭代key和value情况:
>>>d = { '小明':0,'小红':65,'小兰':88}>>>for k, v in d.items(): print(k,v)-----------------------------------------------------------------------------------小明 0小红 65小兰 88
(3)迭代字符串
因为字符串也是可迭代对象,因此我们可以对字符串进行迭代:
>>>for ch in 'ABC': print(ch) ------------------------------------------------------------------------------------- A B C
3.利用collections模块的Iterable类型判断一个对象是否是可迭代对象
通常我们使用for循环时,只要这个对象是可迭代对象,for循环就能正常运行,而不用去管这个对象的是哪种数据类型的,但是我们怎么才能知道这个对象是否是可迭代对象呢,这就需要我们自己去判断了,方法是通过collections模块的Iterable类型判断
>>> from collections import Iterable>>> isinstance('abc', Iterable) # str是否可迭代True>>> isinstance([1,2,3], Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整数是否可迭代False
4.使用python内置函数enumerate函数同时迭代list索引及元素本身
>>>for i, value in enumerate(['January','February','March']): print(i,value)----------------------------------------------------------------------------0 January1 February2 March
ps:上述的for循环语句,引用了两个变量,这在python中是很常见的,例:
>>> for x, y in [(1, 2), (2, 4), (3, 8)]:... print(x, y)...---------------------------------------------------------------1 22 43 8