Verwenden Sie die kreisförmige Liste in Python
-
Verwenden Sie
itertools.cycle
, um Circular List in Python zu verwenden -
Verwenden Sie
Generatoren
, um Circular List in Python zu verwenden
Eine reguläre verknüpfte Liste hat einen Wurzelknoten, bei dem jeder Knoten einen Zeiger auf den nächsten Knoten und ein Datenelement hat, mit Ausnahme des letzten Knotens, der keinen nächsten Knoten hat (also einen Null
-Wert enthält), der uns sagt, dass das der ist letzter Knoten. In einer kreisförmig verknüpften Liste hat der letzte Knoten jedoch einen Zeiger zurück zum ersten Knoten in der Liste.
Zirkuläre verkettete Listen sind also verkettete Listen, die so strukturiert sind, dass alle Knoten innerhalb der besagten Struktur einen Kreis bilden. Diese lineare und dynamische Datenstruktur, deren Knoten nicht None
sein können; hat den letzten Knoten mit dem ersten Knoten verbunden, sodass jeder Knoten zum vorherigen oder nächsten führen kann, und so weiter und so weiter.
Typischerweise ermöglicht uns ein iterator
-Objekt, innerhalb einer Listen- oder Wörterbuch-Datenstruktur von einem Element zum anderen zu wechseln. Bei einer kreisförmigen Liste ermöglicht die Verbindung zwischen den einzelnen Knoten dies insbesondere durch die Verwendung integrierter Funktionen.
Dieser Artikel behandelt die Implementierung und Verwendung einer kreisförmigen Liste in Python, nativ oder mit Modulen.
Verwenden Sie itertools.cycle
, um Circular List in Python zu verwenden
Python hat ein eingebautes Modul namens itertools
, das Sequenzen mit Iteratoren und Funktionsschleifen ermöglicht. Innerhalb dieses Moduls helfen Iteratoren (Methoden) bei der Ausarbeitung effizienter Systeme, um verschiedene Kontexte zu durchlaufen, von kurzen Eingabesequenzen bis hin zu kombinatorischen Szenarien.
Wichtiger zu verwenden ist jedoch der Iterator cycle()
, der ein unendlicher Iterator ist, der eine Liste nimmt und sie unendlich wiederholt.
Dies geschieht durch Erstellen eines Iterators, der seine Elemente zurückgibt und jedes Element aus dem Iterable kopiert. Anschließend gibt es die Elemente aus der gespeicherten Kopie zurück, nachdem das Iterable abgeschlossen ist.
Um das Modul itertools
und die Methode cycle()
zu verwenden, verwenden wir diese import
-Anweisung:
from itertools import cycle
Alles, was wir von hier aus tun müssen, ist, eine Liste an die cycle()
-Methode zu übergeben, und wir haben eine kreisförmige verkettete Liste. Darüber hinaus können wir eine eingebaute Funktion, next()
, verwenden, um auf das nächste Element oder den nächsten Knoten aus dem Iterator zuzugreifen und es zurückzugeben, bei dem es sich um die kreisförmige verkettete Liste handelt.
from itertools import cycle
numList = ["one", "two", "three", "four", "five"]
circularList = cycle(numList)
print(next(circularList))
print(next(circularList))
Ausgang:
one
two
Mit der next()
-Methode können wir den Iterator also einfach einen nach dem anderen vorrücken, anstatt die for
-Schleife zu verwenden, die endlos wiederholt wird.
from itertools import cycle
numList = ["one", "two", "three", "four", "five"]
circularList = cycle(numList)
for num in circularList:
print(num)
Ausgang:
one
two
three
four
five
one
two
three
four
Verwenden Sie Generatoren
, um Circular List in Python zu verwenden
Mit Generatoren können wir Iterationen und Funktionen erstellen, die einen Iterator zurückgeben, über den wir iterieren können. Im Gegensatz zu typischen Funktionen, bei denen wir return
-Anweisungen verwenden, verwenden wir die yield
-Anweisungen in generators
.
Im Gegensatz zu return
-Anweisungen pausiert die yield
-Anweisung die Funktion, speichert alle ihre Umgebungsvariablen (oder Status) und überträgt eine davon bei nachfolgenden Aufrufen. Zusätzlich kann eine generator
-Funktion eine return
-Anweisung und mehr als eine yield
-Anweisung enthalten.
Um eine kreisförmige Liste zu erstellen, können wir die Anweisung yield
verwenden, um den Zustand der Funktion zu speichern und auf nachfolgende Aufrufe zu warten.
def circular(args):
while True:
for element in args:
yield element
numList = ["one", "two", "three", "four", "five"]
circularList = circular(numList)
print(circularList)
Ausgang:
<generator object circular at 0x0000018AFFD39A10>
Mit der generator
-Funktion namens circular()
können wir ihr ein iterierbares Argument übergeben. Es wird mit der Anweisung while True
für immer wiederholt, kann aber die Funktion anhalten, um den aktuellen Zustand zurückzugeben (dh das aktuelle Element oder den aktuellen Knoten, auf dem es sich befindet), und fortfahren, wenn ein weiterer Aufruf erfolgt ist.
Dies hilft uns, eine kreisförmige Liste zu erstellen.
Sie können die Methode next()
verwenden, um das nächste Element innerhalb der kreisförmigen Liste abzurufen.
def circular(args):
while True:
for element in args:
yield element
numList = ["one", "two", "three", "four", "five"]
circularList = circular(numList)
print(next(circularList))
print(next(circularList))
Ausgang:
one
two
Oder auch endlos schleifen.
def circular(args):
while True:
for element in args:
yield element
numList = ["one", "two", "three", "four", "five"]
circularList = circular(numList)
for i in circularList:
print(i)
Ausgang:
one
two
three
four
five
one
two
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert