iter()将可迭代对象转换为迭代器,通过next()获取元素直至StopIteration;2. 可用于列表、元组等,for循环自动调用iter()和next();3. 提供sentinel时,iter持续调用可调用对象直至返回值等于sentinel;4. 自定义类可通过实现__iter__和__next__方法支持迭代。
在 Python 中,iter() 函数用于将可迭代对象转换为迭代器。有了迭代器,你可以通过 next() 函数逐个获取元素,直到所有元素被访问完毕,之后会抛出 StopIteration 异常。
iter(object) 或 iter(object, sentinel)
这是最常见的使用方式:
my_list = [10, 20, 30]for 循环内部其实自动调用了 iter() 和 next(),所以可以直接使用:
my_tuple = (5, 10, 15)这段代码和直接写 for value in my_tuple: 效果一样。
当你有一个可调用对象(如函数),可以使用第二个参数来控制何时停止:
import random这会不断调用 get_random() 并输出结果,直到返回 5 为止。
你可以在类中定义 __iter__() 方法,使其支持 iter():
class CountDown:
if self.start
raise StopIteration基本上就这些。掌握 iter() 能帮助你更深入理解 Python 的迭代机制,尤其是在处理大数据流或需要惰性计算时特别有用。不复杂但容易忽略细节。