首頁 >後端開發 >Python教學 >如何有效率地查找Python清單中的第一個匹配項?

如何有效率地查找Python清單中的第一個匹配項?

DDD
DDD原創
2024-12-07 19:26:20234瀏覽

How to Efficiently Find the First Matching Item in a Python List?

從列表中獲取第一個與條件匹配的項目,而不處理整個列表

從潛在廣泛的列表中獲取滿足特定條件的第一個元素是常見的任務。雖然像您這樣的自訂函數可以實現此目的,但 Python 中可能內建了更有效的替代方案。

Python 2.6 和Python 3:

對於這些版本,接下來考慮內建函數產生以下兩種方法:

  1. 提高StopIteration:

    next(x for x in the_iterable if x > 3)
  2. 傳回預設值(例如None):

    next((x for x in the_iterable if x > 3), default_value)

Python

注意:以下解決方案比Python 2.6 的效率低,因為它們處理效率低,因為它們處理效率低,因為它們處理效率低,因為它們處理效率低,因為它們處理的效率整個清單。

  1. 下一個方法:

    .next()

    如果沒有元素滿足條件,則立即引發 StopIteration .

  2. 自訂函數(根據您的初始提案):

    def first(the_iterable, condition = lambda x: True):
        for i in the_iterable:
            if condition(i):
                return i
  3. itertools:

    from itertools import ifilter, islice
    first_item = next(ifilter(lambda x: x > 3, the_iterable))
  4. 帶中斷的循環:

    for item in the_iterable:
        if condition(item):
            break
    first_item = item
  5. 嘗試/除外停止迭代:

    try:
        first_item = next(x for x in the_iterable if condition(x))
    except StopIteration:
        return None

以上是如何有效率地查找Python清單中的第一個匹配項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn