To retrieve the initial item from an iterable that meets a特定条件,您可以采取以下方法:
对于需要引发 StopIteration(如果找不到匹配项)的情况:
next(x for x in the_iterable if x > 3)
对于要返回默认值的场景(例如 None):
next((x for x in the_iterable if x > 3), default_value)
可以使用迭代器的 .next() 方法,如果迭代器立即结束(即,iterable 中没有项目满足条件),它将立即引发 StopIteration。如果您对此情况不关心(例如,您知道肯定至少有一个满足条件的项目),则可以直接使用 .next()。
如果您确实关心,可以使用 itertools,for...: break 循环或 genexp 来实现您的函数。然而,这些替代方案并没有提供太多附加值,因此建议使用您最初提出的简单版本:
def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i
以上是如何在 Python 中查找可迭代对象中的第一个匹配元素?的详细内容。更多信息请关注PHP中文网其他相关文章!