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

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

DDD
發布: 2024-12-07 19:26:20
原創
223 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板