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
Lepaskan: 2024-12-10 19:16:10
asal
621 orang telah melayarinya

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))
Salin selepas log masuk

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

next(x for x in the_iterable if x > 3)
Salin selepas log masuk

Untuk mengembalikan nilai lalai, gunakan:

next((x for x in the_iterable if x > 3), default_value)
Salin selepas log masuk

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()
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan