Lelaran Tetingkap Berguling: Pendekatan yang Elegan dan Cekap
Dalam Python, iterator tetingkap bergolek membenarkan pemprosesan urutan dalam segmen yang bertindih daripada saiz yang ditentukan. Walaupun lelaran tradisional (dengan saiz tetingkap 1) ialah pendekatan biasa, teknik yang lebih canggih menawarkan kecekapan dan keanggunan yang lebih besar.
Salah satu pendekatan sedemikian ialah fungsi rolling_window(), yang menerima jujukan dan saiz tetingkap sebagai parameter . Fungsi ini menggunakan tetingkap gelongsor untuk beralih ke atas jujukan, menghasilkan tetingkap dengan saiz yang ditentukan.
Kod yang disediakan untuk fungsi rolling_window() ialah penyelesaian yang teguh. Walau bagaimanapun, untuk keanggunan yang dipertingkatkan, kami boleh menggunakan fungsi islice modul itertools. Kod yang terhasil:
from itertools import islice def window(seq, n=2): it = iter(seq) result = tuple(islice(it, n)) if len(result) == n: yield result for elem in it: result = result[1:] + (elem,) yield result
Pelaksanaan ini memanfaatkan islice untuk membahagikan iterator kepada bahagian, meningkatkan keringkasan dan kebolehfahaman.
Konsep tingkap gelongsor melangkaui objek jujukan. Untuk iterator, kita boleh menggunakan itertools.groupby() untuk mencipta kamus tingkap. Untuk tatasusunan, fungsi skimage.util.pad() membolehkan penciptaan tetingkap gelongsor bertindih.
Lelaran tetingkap bergolek ialah teknik yang berharga untuk memproses jujukan dalam segmen yang bertindih. Penyelesaian yang mudah dan cekap yang dibentangkan di sini menawarkan cara mudah untuk melaksanakan konsep ini, memperluaskan aplikasinya kepada iterator dan tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Lelaran Tetingkap Rolling Boleh Meningkatkan Pemprosesan Urutan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!