Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Iterator Tetingkap Berguling atau Gelongsor dengan Cekap dalam Python?
Pengulang Tetingkap Berguling atau Gelongsor
Peulang tetingkap bergolek atau gelongsor membolehkan traversal jujukan dalam tetingkap bertindih dengan saiz yang ditentukan. Lelaran pada jujukan dengan saiz tetingkap 1 pada asasnya ialah lelaran Python lalai.
Pelaksanaan Cekap dan Elegan
Pelaksanaan berikut daripada dokumentasi Python memanfaatkan modul itertools untuk meningkatkan kecekapan:
from itertools import islice def window(seq, n=2): """Returns a sliding window (of width n) over data from the iterable""" "s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ..." 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 untuk Mudah Iterables
Untuk iterable yang diwakili sebagai senarai atau tupel ringkas, pendekatan mudah melibatkan lelaran melalui iterable dengan saiz tetingkap yang ditentukan:
seq = [0, 1, 2, 3, 4, 5] window_size = 3 for i in range(len(seq) - window_size + 1): print(seq[i: i + window_size])
Output:
[0, 1, 2] [1, 2, 3] [2, 3, 4] [3, 4, 5]
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Iterator Tetingkap Berguling atau Gelongsor dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!