Python的iter()
函数用于将一个可迭代对象转换为迭代器。
在Python中,迭代器是一种遵循迭代器协议的对象,它能够逐个返回元素,直到没有元素可返回。iter()
函数接受一个可迭代对象作为参数,并返回该对象的迭代器。
1. 基本语法
iter(iterable, sentinel=None)
iterable
:一个可迭代对象,如列表、元组、字典、集合等。sentinel
(可选):一个标记值,用于在迭代过程中作为终止条件。如果在迭代过程中遇到该值,迭代器将停止迭代并抛出StopIteration
异常。
2. 使用示例
2.1 基本用法
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)
print(next(my_iterator)) # 输出:1
print(next(my_iterator)) # 输出:2
print(next(my_iterator)) # 输出:3
2.2 使用sentinel
参数
def my_function(n):
if n == 0:
return "STOP"
return n
my_iterator = iter(my_function, "STOP")
print(next(my_iterator, "DONE")) # 输出:1
print(next(my_iterator, "DONE")) # 输出:2
print(next(my_iterator, "DONE")) # 输出:3
print(next(my_iterator, "DONE")) # 输出:DONE
3. 注意事项
iter()
函数只接受可迭代对象作为参数,如果传入一个不可迭代对象,将抛出TypeError
异常。- 在使用
sentinel
参数时,需要确保函数在返回标记值之前至少返回一个有效值。 - 迭代器在使用完所有元素后,将抛出
StopIteration
异常,因此在循环中使用迭代器时,通常需要使用try-except
块来捕获该异常。
通过使用iter()
函数,我们可以方便地将各种可迭代对象转换为迭代器,从而实现对元素的逐个访问和处理。