Python 面试题
目录

Python 中如何使用 for 循环遍历迭代器?

· 约 3 分钟读完 · 第 34 / 171 章

推荐答案

在 Python 中,可以使用 for 循环直接遍历迭代器。以下是一个简单的示例:

在这个示例中,iter() 函数将列表 my_list 转换为一个迭代器,然后 for 循环自动调用迭代器的 __next__() 方法来遍历每个元素。

本题详细解读

1. 什么是迭代器?

迭代器是 Python 中用于遍历集合(如列表、元组、字典等)的对象。它实现了两个方法:__iter__() 和 __next__()。__iter__() 返回迭代器对象本身,而 __next__() 返回集合中的下一个元素。当没有更多元素时,__next__() 会引发 StopIteration 异常。

2. for 循环的工作原理

for 循环在遍历迭代器时,会自动调用迭代器的 __iter__() 方法来获取迭代器对象,然后重复调用 __next__() 方法来获取每个元素,直到捕获到 StopIteration 异常为止。

3. 使用 iter() 函数

iter() 函数用于将可迭代对象(如列表、元组、字符串等)转换为迭代器。例如:

4. 手动遍历迭代器

你也可以手动使用 next() 函数来遍历迭代器:

5. 自定义迭代器

你可以通过定义一个类并实现 __iter__() 和 __next__() 方法来创建自定义迭代器:

这个自定义迭代器会输出从 1 到 4 的数字。