Python的iter()函数用于将可迭代的对象转换为迭代器。在使用该函数时,我们有时需要指定一个哨兵值,以使迭代器遍历到哨兵值时停止迭代,而不是无休止地迭代下去。
具体使用方法如下:
iter(iterable, sentinel)
其中,iterable为可迭代的对象,sentinel为哨兵值。
示例1:使用哨兵值迭代文件内容
with open('test.txt') as f:
for line in iter(f.readline, ''):
print(line)
以上代码中,使用with open关键字打开test.txt文件,然后使用iter()函数构建迭代器,这个迭代器将逐行迭代文件内容,直到读到哨兵值”(空字符串)时停止迭代。每次迭代中,使用print语句输出读取到的行内容。
示例2:使用哨兵值迭代从键盘输入的内容
def input_until(sentinel):
for line in iter(input, sentinel):
yield line
for line in input_until('stop'):
print(line)
以上代码中,我们定义了一个函数input_until
,该函数会从键盘读取用户输入并将其打印出来,直到读到用户输入的哨兵值为止。
在调用该函数时,我们使用for line in input_until('stop'):
这样的语句迭代调用该函数,直到用户输入”stop”为止。
综上所述,使用Python的iter()函数配合哨兵值可以很方便地实现停止迭代的操作,从而更好地控制程序的流程。