Python iter()使用哨兵值

  • Post category:Python

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()函数配合哨兵值可以很方便地实现停止迭代的操作,从而更好地控制程序的流程。