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])
January
February
March
(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)
-----------------------------------------------------------------------------------
65
0
88
同时迭代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 January
1 February
2 March
ps:上述的for循环语句,引用了两个变量,这在python中是很常见的,例:
>>> for x, y in [(1, 2), (2, 4), (3, 8)]:
... print(x, y)
...
---------------------------------------------------------------
1 2
2 4
3 8