python的iter函数怎么使用

  • Post category:Python

下面是关于Python iter函数的完整讲解。

iter函数概述

iter函数是Python的内置函数之一,用于创建一个迭代器对象。需要注意的是,迭代器对象只能遍历一次,每次遍历都会将指针指向下一个元素位置。

Python的iter函数共用有两种形式:

iter(iterable)

iter接受一个可迭代的对象作为参数,并返回一个迭代器对象。

iter(callable, sentinel)

其中的callable是可调用对象,而sentinel是一个特殊的值,当callable返回值等于sentinel时,迭代结束。

下面通过两个具体的示例来展示iter函数的使用方法。

示例1

先来看一个简单的列表遍历示例:

list1 = [1, 2, 3, 4, 5]
iter_list = iter(list1)
for i in iter_list:
    print(i)

在这个示例中,首先创建了一个列表list1,然后通过iter函数将其转化为一个迭代器对象iter_list。接着在for循环中,通过遍历iter_list对象来逐个输出list1中的元素。运行结果如下:

1
2
3
4
5

注意,代码中使用for-in循环方式与while循环方式是等价的,如下所示:

while True:
    try:
        i = next(iter_list)
        print(i)
    except StopIteration:
        break

在这个示例中,我们通过next函数来逐个输出iter_list对象的元素,直到遍历结束。当迭代结束时,调用next函数会抛出StopIteration异常,我们可以通过捕获该异常来结束循环。

示例2

接下来,为大家展示一个iter函数的高级用法,即通过iter函数来读取文件内容。虽然Python中有更为便捷的文件读取方式,但是这个示例可以帮助大家更好地理解iter函数。

我们先创建一个名为data.txt的文本文件,内容如下:

Line1: Hello World!
Line2: Welcome to Python!
Line3: Enjoy coding!

然后通过下面的代码来读取文件内容:

with open('data.txt', 'rt') as f:
    for line in iter(lambda: f.readline().strip(), ''):
        print(line)

这段代码实现了一个逐行读取文件的过程,其中第一个参数是一个lambda函数,用来读取一行文本内容,第二个参数是一个空字符串,当读取到这个空字符串时,迭代结束。需要注意的是,在循环体内部,我们通过strip函数来去除每行文本的回车符。

运行代码,输出结果如下:

Line1: Hello World!
Line2: Welcome to Python!
Line3: Enjoy coding!

以上就是iter函数的详细介绍,希望对大家有所帮助。