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中文網其他相關文章!