Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich einen Schiebefenster-Iterator in Python erstellen?

Wie kann ich einen Schiebefenster-Iterator in Python erstellen?

Linda Hamilton
Freigeben: 2024-12-16 09:33:10
Original
625 Leute haben es durchsucht

How Can I Create a Sliding Window Iterator in Python?

Schiebefenster-Iteratoren in Python

Bei der Arbeit mit Streaming-Daten oder sequenzieller Verarbeitung kann ein Roll- oder Schiebefenster-Iterator für die Untersuchung von unschätzbarem Wert sein Stream von Elementen in einem definierten Fenster.

In Python können Sie mithilfe der integrierten Funktion einen Schiebefenster-Iterator erstellen itertools-Modul. Die Funktion window() aus einer älteren Version der Python-Dokumentation bietet eine prägnante und effiziente Implementierung:

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
Nach dem Login kopieren

Alternativ kann für eine einfache Liste oder ein Tupel ein unkomplizierter Ansatz verwendet werden:

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])
Nach dem Login kopieren

In beiden Fällen gleitet das Fenster durch die Sequenz und erzeugt überlappende Fenster einer bestimmten Größe, sodass Daten einfach analysiert und auf überschaubare Weise verarbeitet werden können.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Schiebefenster-Iterator in Python erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage