Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mencari Elemen Padanan Pertama dalam Boleh Diterbitkan dalam Python?

Bagaimana untuk mencari Elemen Padanan Pertama dalam Boleh Diterbitkan dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-10 17:24:11718semak imbas

How to Find the First Matching Element in an Iterable in Python?

Mencari Elemen Padanan Pertama dalam Boleh Lelar

Untuk mendapatkan semula item awal daripada boleh lelar yang memenuhi syarat tertentu, anda boleh mengambil pendekatan berikut:

Python 2.6 dan Python 3

Bagi mereka yang perlu membuang Kes untuk StopIteration (jika tiada padanan ditemui):

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

Untuk senario di mana anda ingin mengembalikan nilai lalai (mis. Tiada):

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

Python 2.5 dan lebih awal

Anda boleh menggunakan kaedah .next() bagi iterator, yang akan meningkat serta-merta jika iterator tamat serta-merta (iaitu, tiada item dalam iterable memenuhi syarat) StopLelaran. Jika anda tidak mengambil berat tentang situasi ini (contohnya, anda tahu pasti terdapat sekurang-kurangnya satu item yang memenuhi syarat), anda boleh menggunakan .next() secara langsung.

Jika anda benar-benar mengambil berat, anda boleh menggunakan itertools, a for...: break loop, atau genexp untuk melaksanakan fungsi anda. Walau bagaimanapun, alternatif ini tidak memberikan banyak nilai tambah, jadi disyorkan untuk menggunakan versi yang lebih mudah yang anda cadangkan pada asalnya:

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

Atas ialah kandungan terperinci Bagaimana untuk mencari Elemen Padanan Pertama dalam Boleh Diterbitkan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn