Python 可迭代对象

  • Post category:Python

当我们在使用 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 还提供了 zipmap 等函数来操作可迭代对象。以下是一个使用 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 可迭代对象的基础知识和应用方法的详细讲解。