📜  Python iter() 方法(1)

📅  最后修改于: 2023-12-03 14:45:59.669000             🧑  作者: Mango

Python iter() 方法

iter()是Python内置函数之一,常用于生成可迭代对象(Iterator)。在这篇文章中,我们将介绍iter()函数的语法、返回值和用法示例。

语法

下面是iter()函数的语法:

iter(object[, sentinel])
参数

iter()函数接受两个参数:

  • object:必选参数,表示要生成Iterator的对象。
  • sentinel:可选参数,表示迭代结束的标志。如果iter()函数只接受一个参数,则object必须是一个实现了__next__()方法的迭代器对象,否则会抛出TypeError异常。
返回值

iter()函数返回一个可迭代对象(Iterator),如果指定了sentinel参数,则迭代器会在下一次迭代时检查是否等于sentinel,如果相等则结束迭代;如果没有指定sentinel参数,则迭代器会无限循环下去。

示例

下面是iter()函数的使用示例:

示例1:生成迭代器
# 生成迭代器
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循环遍历了这个迭代器并打印出了其中的元素。

示例2:指定sentinel参数
# 生成迭代器并指定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参数时,我们还可以控制迭代器何时停止迭代,这在一些特殊的场景下非常有用。