当我们在使用 Python 内置的迭代数据类型(如列表、元组、字符串、集合等)时,我们可以直接使用 for 循环来遍历它们。这是因为这些数据类型都是可迭代对象,即它们实现了一个特殊的方法——__iter__()
方法,返回一个迭代器对象。
那么什么是迭代器对象呢?迭代器对象是实现了两个方法的对象:__iter__()
和__next__()
方法。__iter__()
方法返回迭代器对象自身,__next__()
方法返回迭代器内的下一个元素。如果没有更多的元素,则抛出 StopIteration 异常。
接下来,我们就可以使用 for
循环来遍历这个迭代器对象,从而遍历可迭代对象的所有元素。
比如,我们可以使用 range
函数生成一个数值上的序列,然后通过 for
循环遍历这个序列,并打印每个元素:
for i in range(5):
print(i)
输出如下:
0
1
2
3
4
除了 range
函数以外,Python 还提供了一些其他的迭代器对象。比如,我们可以使用 enumerate
函数来同时遍历一个列表的元素和它们的索引:
lst = ["apple", "banana", "orange"]
for i, fruit in enumerate(lst):
print(i, fruit)
输出如下:
0 apple
1 banana
2 orange
此外,Python 还提供了 zip
、map
等函数来操作可迭代对象。以下是一个使用 zip
函数对两个列表进行压缩的例子:
lst1 = [1, 2, 3]
lst2 = ['a', 'b', 'c']
for x, y in zip(lst1, lst2):
print(x, y)
输出如下:
1 a
2 b
3 c
以上便是 Python 可迭代对象的基础知识和应用方法的详细讲解。