English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Namentliche Tupel in Python

Deque ist eine Generalisierung von Stapel- und Warteschlangenstrukturen, die von links nach rechts initialisiert werden. Er verwendet List-Objekte, um eine double-ended Queue zu erstellen, die O(1)Zeitkomplexität.

Deque ist eine Standardbibliotheksklasse, die sich imcollectionsModul.

Zunächst müssen wir es aus dem Standardmodul Collections importieren.

import collections

In diesem Abschnitt werden wir einige Funktionen der Deque-Klasse sehen

Anhänge-Funktionen der double-ended Queue

Es gibt zwei verschiedene Arten von Anhängen. Dieappend()Diese Methode wird verwendet, um ein Element rechts an die Warteschlange hinzuzufügen, dasappendleft()Diese Methode wird verwendet, um ein Element links an die Warteschlange anzuhängen.

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('124dfre')
   print('Dequeue: ) + str(my_deque)
      #insert x at right and B at left
      my_deque.append('x')
      my_deque.appendleft('B')
   print('Dequeue nach Anhängen: ' + str(my_deque)

Ausgabeergebnis

Dequeue: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e'])
Dequeue nach Anhängen: deque(['B', '1', ''2', ''4', 'd', 'f', 'r', 'e', 'x'])

Ausgabe-Funktionen der double-ended Queue

Wie das Anhängen gibt es zwei verschiedene Arten von Ausgabe-Funktionen. Diepop()Diese Methode wird verwendet, um das rechte Element aus der Warteschlange zu löschen und zurückzugeben, daspopleft()Diese Methode wird verwendet, um das linke Element aus der Warteschlange zu löschen und zurückzugeben.

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('124dfre')
   print('Dequeue: ) + str(my_deque)
      #delete item from right and left
      item = my_deque.pop()
   print('Geholtes Element: ' + str(item))
      item = my_deque.popleft()
   print('Geholtes Element: ' + str(item))
print('Dequeue nach pop-Operationen: ' + str(my_deque)

Ausgabeergebnis

Dequeue: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e'])
Geholtes Element: e
Geholtes Element: 1
Dequeue nach pop-Operationen: deque(['2', ''4', 'd', 'f', 'r'])

Funktionen in der Deque im Zusammenhang mit Projekten

Einige Funktionen in der Deque werden verwendet, um Informationen im Zusammenhang mit Projekten zu erhalten. Einige Funktionen, wieindex()count()und so weiter. Die index-Methode wird verwendet, um den Index der ersten Erscheinung eines Elements zu erhalten. Wenn kein Element als Parameter übergeben wird, wählt sie die gesamte Liste, und nach der Angabe eines bestimmten Limits überprüft sie den Index innerhalb dieses Limits. Andererseits, diecount()

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('AABCDDEFD')
   print('Dequeue: ) + str(my_deque)
      Die Methode berechnet die Häufigkeit der Elemente in der Double-Ended Queue.
   #Finde den Index von D + print('Index von D:'
D 5 Index von D im Bereich 8 print('Index von D im Bereich +  5, 8D
))
   #Zähle die Anzahl der Vorkommen + print('Vorkommen von A: '
A + print('Vorkommen von D: '

Ausgabeergebnis

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
D4
Index von D: 5 Index von D im Bereich 8 bis 5
ist: 2
Vorkommen von A: 3

Vorkommen von D in der Queue:insert()undremove()Methode

Wir haben bereits die append- und pop-Funktionen in der Queue gesehen, die zum Einfügen und Entfernen von Elementen verwendet werden. Es gibt auch zwei Methoden, die mit dem Einfügen und Entfernen zusammenhängen. Dieinsert()Die Methode dient dazu, eine Zahl einzufügen. In diesem Fall können wir den Einlagenindex bereitstellen. Daher kann das Projekt an der angegebenen Position eingefügt werden. Und dieremove()Die Methode dient dazu, die erste Erscheinung eines Elements zu löschen.

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ) + str(my_deque)
#Füge Buchstaben G und H an die Position ein 5, 7 entsprechend
my_deque.insert(5, 'G')
my_deque.insert(7, 'H')
print('Dequeue nach Einfügen: ' + str(my_deque)
#Entferne die erste Erscheinung des Buchstaben D
my_deque.remove('D')
print('Dequeue nach Entfernen: ' + str(my_deque)

Ausgabeergebnis

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
Dequeue nach Einfügen: deque(['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D'])
Dequeue nach Entfernen: deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])

Erweiterte Funktionen in der Queue

Die erweiterten Funktionen dienen dazu, mehrere Elemente in eine Queue hinzuzufügen. Wir können Sammlungen wie Listen oder Tupel verwenden, um mehrere Werte bereitzustellen. Es gibt zwei erweiterte Funktionen. Dieextend()Methode dient dazu, Elemente auf der rechten Seite hinzuzufügen, ähnlich wie das Wiederaufnehmenappend()Methode. Und dieseextendleft()Methode dient dazu, Elemente auf der linken Seite hinzuzufügen, ähnlich wie das Wiederaufnehmenappendleft()Methode.

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ) + str(my_deque)
#Erweitern durch Hinzufügen 1, 3, 5, 7 nach rechts und x, y, z nach links
my_deque.extend(1, 3, 5, 7])
my_deque.extendleft(['x', 'y', 'z'])
print('Deque nach Erweitern: ) + str(my_deque)

Ausgabeergebnis

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
Deque nach Erweitern: deque(['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D', 1, 3, 5, 7])

Reversal- und Drehfunktionen der doppelten Warteschlange verwenden

Wir können diesereverse()Methode kehrt die Reihenfolge der Ausgabeque heraus. Es gibt auch eine andere Methoderotate()。使用rotate-Methode kann die doppelte Warteschlange durch Angabe eines Parameters rotiert werden. Wenn der Parameter positiv ist, wird nach rechts gedreht, wenn er negativ ist, wird nach links gedreht.

Beispielcode

import collections as col
#Fügen Sie einige Elemente am Anfang in die Warteschlange ein
my_deque = col.deque('AABCDDEFD')
print('Dequeue: ) + str(my_deque)
my_deque.reverse()
 + str(my_deque)
#Drehen nach rechts, 3 elemente
my_deque.rotate(3)
print('Deque nach Drehen:) + str(my_deque)

Ausgabeergebnis

Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D'])
Deque nach Umkehren: deque(['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A'])
Deque nach Drehen: deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])