在Python中,迭代器(iterator)是许多函数和语句的基础,因为它们的顺序和递增顺序是非常重要的。迭代器顺序的理解是深入学习Python编程的基础。
Python的内置函数iter()返回一个迭代器对象,使用next()函数可以逐步迭代该对象。
# 创建一个迭代器对象 iter_obj = iter([1, 2, 3, 4, 5]) # 逐步迭代该对象 print(next(iter_obj)) # 1 print(next(iter_obj)) # 2 print(next(iter_obj)) # 3 print(next(iter_obj)) # 4 print(next(iter_obj)) # 5
值得注意的是,Python中的迭代器是一种单向操作,即只能依次向前迭代。无法回到任何旧元素和再次迭代。下面的代码展示了这个特点。
# 创建一个迭代器对象 iter_obj = iter([1, 2, 3, 4, 5]) # 逐步迭代该对象 print(next(iter_obj)) # 1 print(next(iter_obj)) # 2 # 再次迭代第一个元素 print(next(iter_obj)) # 3 iter_obj = iter([1, 2, 3, 4, 5]) print(next(iter_obj)) # 1
如果试图在迭代器耗尽后再次循环迭代,会出现StopIteration异常,如下所示。
iter_obj = iter([1, 2, 3, 4, 5]) try: while True: element = next(iter_obj) print(element) except StopIteration: pass
这个示例中浏览了迭代器元素的整个序列,然后引发了StopIteration异常。将它包含在一个try和一个except块中,以优雅地处理异常。