Heim > Artikel > Backend-Entwicklung > Detaillierte Beschreibung des integrierten Moduls „Collections“ von Python
ccollections ist ein integriertes Modul von Python. Der Quellcode befindet sich in Lib/collections/init.py. Dieses Modul stellt einen universellen Datencontainer bereit.
Deque-ContainerObjekt
wird durch den Import von Deques aus Sammlungen eingeführt. Beim Erstellen eines Deque-Containerobjekts können Sie den Parameter auf ein iterierbares Objekt (z. B. Tupel, list, str) oder maxlen=x (int-Typ) oder None für die Initialisierung.
Deque-Container unterstützt ThreadSicherheit Beim Einfügen oder Entfernen von Elementen an beiden Enden von Deque über append oder pop beträgt die Zeitkomplexität O(1). Im Vergleich zum Listenobjekt verfügt die Liste auch über dieselbe api, um dieselbe Funktion zu implementieren, aber für Operationen auf der Liste wie pop(0) oder insert(0, x) beträgt die Zeitkomplexität O (N) .
Wenn maxlen nicht deklariert ist oder maxlen=None beim Initialisieren von Deque deklariert ist, kann der Deque-Container eine beliebige Anzahl von Elementen enthalten. Andernfalls wird der Deque-Container als Elementcontainer mit begrenzter Länge definiert.
Sobald die Anzahl der Elemente im Container den festgelegten maxlen erreicht, wird beim Hinzufügen neuer Elemente die gleiche Anzahl von Elementen vom anderen Ende des hinzugefügten Elements ausgeschlossen, wodurch sichergestellt wird, dass die Elemente im aktuellen deque Alle sind neu hinzugefügte Elemente.
Deque-ObjektFunktion
append(x)
appendleft(x)
clear()
copy()
count(x): Gibt die Anzahl der Elemente mit dem Wert x im Container zurück
extend(iterable)
extendleft(iterable)
index(x): Finden Sie den ersten Wert von x im Containerelement index , wenn er nicht existiert, lösen Sie eine ValueError-Ausnahme aus
insert(idx, x)
pop()
popleft()
remove(x)
reverse(): Elemente im Container umdrehen und None
rotate(n)
deque object read-only -Attribut zurückgeben
maxlen
Da das Deque-Objekt zusätzlich zu den oben genannten Objektfunktionen auch ein iterierbares Objekt ist, gilt len(deque);reversed(deque);copy.copy(deque );copy. Ebenso funktioniert der in -Operator beim Durchlaufen der Deque-Operation. Die Slicing-Operation deque[-1] kann auch das letzte Element in der Container. Wenn Sie mit zufälligen Elementen im Container arbeiten, wird die Verwendung einer Liste empfohlen.
demo
Rufen Sie den Zeileninhalt der Python--Zeichenfolge in der Datei und die ersten drei Zeilen dieser Zeile
from collections import deque def search(lines, pattern, maxlen): pre_lines = deque(maxlen=maxlen) for line in lines: if pattern in line: yield line, pre_lines pre_lines.append(line) if name == 'main': with(open('./test.txt')) as f: for line, pre_lines in search(f, 'python', 3): for pre_line in pre_lines: print(pre_line, end='') print(line)
als Eingabetext ab Der Dateiinhalt ist
c# c c++ javascript python java delphi python golang perl css html python
und die Ausgabe durch den Code ist
c c++ javascript python python java delphi python perl css html python
Das obige ist der detaillierte Inhalt vonDetaillierte Beschreibung des integrierten Moduls „Collections“ von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!