推荐答案
# 使用 iter() 和 next() 函数 my_list = [1, 2, 3] iter_obj = iter(my_list) # 创建迭代器对象 print(next(iter_obj)) # 输出: 1 print(next(iter_obj)) # 输出: 2 print(next(iter_obj)) # 输出: 3 # print(next(iter_obj)) # 如果继续调用,会抛出 StopIteration 异常
本题详细解读
iter() 函数
iter() 函数用于将一个可迭代对象(如列表、元组、字符串等)转换为一个迭代器对象。迭代器对象可以逐个访问可迭代对象中的元素。
- 语法:
iter(iterable[, sentinel])iterable: 必需,表示要转换为迭代器的可迭代对象。sentinel: 可选,如果提供了sentinel,iterable必须是一个可调用对象(如函数),迭代器会不断调用iterable,直到返回的值等于sentinel。
next() 函数
next() 函数用于从迭代器中获取下一个元素。每次调用 next(),迭代器都会返回下一个元素,直到没有更多元素时抛出 StopIteration 异常。
- 语法:
next(iterator[, default])iterator: 必需,表示要从中获取下一个元素的迭代器对象。default: 可选,如果提供了default,当迭代器耗尽时,返回default而不是抛出StopIteration异常。
示例代码解析
创建迭代器对象:
iter_obj = iter(my_list)
这里
iter()函数将列表my_list转换为一个迭代器对象iter_obj。获取下一个元素:
print(next(iter_obj)) # 输出: 1 print(next(iter_obj)) # 输出: 2 print(next(iter_obj)) # 输出: 3
每次调用
next(iter_obj),迭代器会返回列表中的下一个元素。处理迭代器耗尽:
# print(next(iter_obj)) # 如果继续调用,会抛出 StopIteration 异常
当迭代器中没有更多元素时,继续调用
next()会抛出StopIteration异常。可以通过提供default参数来避免异常。