Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Cekap Mendapatkan Item Padanan Pertama daripada Iterable dalam Python?

Bagaimana untuk Cekap Mendapatkan Item Padanan Pertama daripada Iterable dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-10 19:16:10652semak imbas

How to Efficiently Get the First Matching Item from an Iterable in Python?

Cara Mendapatkan Item Padanan Pertama daripada Iterable

Dalam banyak senario, pembangun menghadapi keperluan untuk mendapatkan semula item pertama daripada iterable yang memenuhi syarat tertentu. Walaupun boleh diulang melalui keseluruhan lelaran, pendekatan ini boleh menjadi tidak cekap untuk set data yang besar.

Fungsi seterusnya dalam Python 2.6 dan Python 3

Python 2.6 dan lebih baharu versi memperkenalkan fungsi seterusnya, yang menyediakan penyelesaian yang elegan untuk tugas ini. Dengan mengulangi ungkapan penjana menggunakan fungsi seterusnya, anda boleh menentukan syarat:

next(x for x in the_iterable if condition(x))

Jika anda ingin menaikkan StopIteration apabila tiada item yang sepadan ditemui, gunakan sintaks berikut:

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

Untuk mengembalikan nilai lalai, gunakan:

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

Iterators dalam Python 2.5 dan Terdahulu

Dalam Python 2.5 dan versi terdahulu, anda boleh menggunakan kaedah .next() bagi iterator. Walau bagaimanapun, kaedah ini akan meningkatkan StopIteration jika tiada item yang memenuhi syarat. Jika anda pasti bahawa sekurang-kurangnya satu item yang sepadan wujud, anda boleh menggunakan .next():

the_iterable.next()

Pendekatan Alternatif untuk Python 2.5 dan Terdahulu

Sebagai alternatif, anda boleh melaksanakan fungsi seperti yang anda cadangkan pada mulanya:

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

Anda juga boleh gunakan modul itertools, for...: break loop atau genexp untuk mencapai hasil yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mendapatkan Item Padanan Pertama daripada Iterable 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