在特定值之前,在列表中循环的最pythonic方法是什么?

时间:2017-11-30 07:39:35

标签: python python-3.x

我刚刚了解了iter函数的第二个参数,它可以用来循环直到满足某个条件。

with open(file, 'r') as f:
    for chunk in iter(lambda _ : f.read(8192), ''):
        print(chunk)

但是,由于iter只接受函数,我只能通过将它转换为生成器函数并将其转换为iter来为列表编写类似的东西。因此,我想知道是否有更多的pythonic方式这样做。请注意我已经看过Padraic's answer,我特别指的是一个平等条件。

1 个答案:

答案 0 :(得分:2)

另一种方法是使用生成器

def file_iterator(filehandle, chunksize=8192, sentinel=''):
    while True:
        result = f.read(chunksize)
        if result == sentinel:
            return
        yield result

with open(file, 'r') as f:
    for chunk in file_iterator(file):
        print(chunk)