下面是关于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函数的详细介绍,希望对大家有所帮助。