推荐答案
# 使用 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
参数来避免异常。