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!