next() 函数的基本概念
next()
是 Python 的内置函数,用于从迭代器中获取下一个元素。它通常与 iter()
结合使用,用于手动控制迭代过程。
基本用法
调用 next()
时,需要传入一个迭代器对象,它会返回迭代器的下一个值。如果迭代器耗尽(没有更多元素),则会抛出 StopIteration
异常。
numbers = [1, 2, 3]
iterator = iter(numbers)
value = next(iterator) # 返回 1
value = next(iterator) # 返回 2
value = next(iterator) # 返回 3
value = next(iterator) # 抛出 StopIteration
提供默认值
为了避免 StopIteration
异常,可以在 next()
中指定默认值。当迭代器耗尽时,会返回该默认值而非抛出异常。
value = next(iterator, "No more items") # 如果迭代器耗尽,返回 "No more items"
使用场景
next()
常用于手动控制迭代过程,例如在处理大型数据时仅获取第一个匹配项,或结合 generator
逐步获取计算结果。
def count_up_to(max_num):
num = 1
while num <= max_num:
yield num
num += 1
counter = count_up_to(3)
print(next(counter)) # 1
print(next(counter)) # 2
print(next(counter)) # 3
print(next(counter, "Finished")) # "Finished"
注意事项
- 如果直接对非迭代器对象(如普通列表)调用
next()
,会抛出TypeError
,需先使用iter()
转换。 - 在
for
循环中,Python 会自动处理StopIteration
,但手动调用next()
时需自行处理异常或提供默认值。