Python列表理解 - 在内部循环中只获得一个结果

时间:2017-10-28 21:48:39

标签: python

我有一个传统的for循环,我想转换为列表理解,更像Pythonic。对于内部循环,我只需要一个结果,然后执行外循环的下一次迭代。

    for tableStartIdx in tableStartIdxs:
        for lineIdx, line in enumerate(lines[tableStartIdx:], tableStartIdx):
            if '|}' == line:
                print(lines[lineIdx])
                return

这是我最接近列表理解的地方:

next((lineIdx for tableStartIdx in tableStartIdxs for lineIdx, line in enumerate(lines[tableStartIdx:], tableStartIdx) if '|}' == line), -1)

然而,当我识别第一个结果时,这会停止外循环。我想我会缩短next()函数中包含的内容,但这会导致"如果不是唯一的参数,则生成器表达式必须加括号。"有道理。

我对列表理解能做什么甚至可能?或者我只是遗漏了一些明显的东西?

0 个答案:

没有答案