python的iter函数怎么使用

  • Post category:Python

iter函数是Python内置的一个函数,主要作用是将可迭代对象转换成迭代器。在Python中,迭代器对象是一种优秀的数据访问方法,实现了迭代器协议的对象都是可迭代的。本文将会详细讲解Python中iter函数的使用方法。

使用方法

iter函数有两种常用的使用方式,分别是:

1. iter(object[, sentinel])

第一种方式是传入一个可迭代对象,返回一个迭代器对象。例如:

#例1列表转迭代器
lst = [1,2,3,4,5]
it = iter(lst)
for x in it:
    print(x)

可以输出1 2 3 4 5这个列表的所有元素。

2. iter(callable, sentinel)

第二种方式是传入一个函数或者方法。这个方法必须不带任何参数。当我们调用生成的迭代器对象的__next__()方法时,这个函数或者方法就被调用,它的返回值就是这次迭代的值。sentinel参数是一个标识值,当函数返回这个值时,迭代器停止。例如:

#例2函数转迭代器
def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a+b
# 创建一个迭代器对象
it = iter(fib(), 1000)
# 循环输出迭代器的下一个元素
while True:
    try:
        print(next(it), end=" ")
    except StopIteration:
        # 迭代已经结束
        break

这个例子中,我们定义了一个斐波那契函数,然后将这个函数传入iter函数,生成一个迭代器。当该迭代器的所有元素都返回后,迭代器会停止。sentinel参数指定了结束的条件,这里是1000。

题外话

除了上述方式,还有一种常见的使用iter函数的方式,是在实现自己的迭代器时使用。在自定义迭代器类的__iter__()方法中使用iter函数,返回自己的对象即可。这种方式不再本文范围内详细讨论。

总结

在Python中,iter函数是一个非常有用的工具。它可以将我们定义的可迭代对象转化为迭代器对象,让我们更加方便地进行数据的访问和处理。为了更好地使用Python编程,我们需要掌握iter函数的使用方法。