📅  最后修改于: 2023-12-03 14:45:59.669000             🧑  作者: Mango
iter()
是Python内置函数之一,常用于生成可迭代对象(Iterator)。在这篇文章中,我们将介绍iter()
函数的语法、返回值和用法示例。
下面是iter()
函数的语法:
iter(object[, sentinel])
iter()
函数接受两个参数:
object
:必选参数,表示要生成Iterator的对象。sentinel
:可选参数,表示迭代结束的标志。如果iter()
函数只接受一个参数,则object
必须是一个实现了__next__()
方法的迭代器对象,否则会抛出TypeError
异常。iter()
函数返回一个可迭代对象(Iterator),如果指定了sentinel
参数,则迭代器会在下一次迭代时检查是否等于sentinel
,如果相等则结束迭代;如果没有指定sentinel
参数,则迭代器会无限循环下去。
下面是iter()
函数的使用示例:
# 生成迭代器
my_list = [1, 2, 3, 4, 5]
my_iter = iter(my_list)
# 遍历迭代器
for i in my_iter:
print(i, end=" ")
# Output: 1 2 3 4 5
在这个示例中,我们使用iter()
函数生成了一个可迭代对象my_iter
,然后用for
循环遍历了这个迭代器并打印出了其中的元素。
# 生成迭代器并指定sentinel参数
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
f_iter = iter(fibonacci(), 1000)
# 遍历迭代器
for i in f_iter:
print(i, end=" ")
# Output: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
在这个示例中,我们定义了一个生成斐波那契数列的生成器函数fibonacci()
,然后用iter()
函数生成了一个可迭代对象f_iter
,并指定了sentinel
参数为1000
,这意味着当下一个元素的值等于或大于1000
时,迭代器就会停止迭代。最后,我们用for
循环遍历这个迭代器并打印出了其中的元素。
iter()
函数是一个非常有用的内置函数,它可以将任何可迭代对象转换成迭代器。这使得我们可以更方便地遍历序列、集合、字典,以及自定义的迭代器对象。使用sentinel
参数时,我们还可以控制迭代器何时停止迭代,这在一些特殊的场景下非常有用。