如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration),也就是遍历。

在Python中,迭代是通过for ... in来完成的。Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。

可迭代对象也就是可使用for循环遍历的对象。

# list迭代
list = [1, 2, 3, 4, 5, 6]

for d in list:
    print(d)
# dict迭代
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
    print(key)

字符串也是可迭代对象,因此,也可以作用于for循环:

# 字符串迭代
for c in 'ABC':
    print(c)

 

所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> isinstance('ABC', Iterable)
True
>>> isinstance([1, 2, 3], Iterable)
True
>>> isinstance((1, 2, 3), Iterable)
True
>>> isinstance(123, Iterable)
False