logo

E in Python

Una deque sta per Double-Ended Queue. È un tipo speciale di struttura dati che consente di aggiungere e rimuovere elementi da entrambe le estremità in modo efficiente.

A differenza delle code normali (che di solito seguono First In First Out) una deque supporta sia le operazioni FIFO che LIFO. Ciò lo rende molto flessibile e utile nelle applicazioni del mondo reale come la pianificazione delle attività, i problemi della finestra scorrevole e l'elaborazione dei dati in tempo reale.



Esempio:

Python
from collections import deque # Declaring deque  de = deque(['name''age''DOB']) print(de) 

Produzione
deque(['name' 'age' 'DOB']) 
Perciò' title=

  • Supporta il tempo O(1) per aggiungere/rimuovere elementi da entrambe le estremità.
  • È più efficiente degli elenchi per le operazioni front-end.
  • Può funzionare sia come coda (FIFO) che come stack (LIFO).
  • Ideale per la pianificazione dei problemi delle finestre scorrevoli e l'elaborazione dei dati in tempo reale.
  • Offre potenti metodi integrati come E ruotare().

Tipi di input deque limitati

  • :  L'immissione è limitata a un'estremità mentre l'eliminazione è consentita a entrambe le estremità.
  • : l'uscita è limitata ad un'estremità ma l'inserimento è consentito ad entrambe le estremità.

Ecco una tabella che elenca le operazioni integrate di una deque in Python con le descrizioni e le relative complessità temporali:

Shilpa Shetty
Operazione Descrizione
Aggiungexall'estremità destra della deque.O(1)
aggiungi a sinistra(x) Aggiungexall'estremità sinistra della deque.
pop() Rimuove e restituisce un elemento dall'estremità destra della deque.
popleft() Rimuove e restituisce un elemento dall'estremità sinistra della deque.
Aggiunge tutti gli elementi daiterableall'estremità destra della deque.Bene)
iterableall'estremità sinistra della deque (ordine invertito).Bene)
Rimuove la prima occorrenza divaluefrom the deque. AlzaValueErrorSU)
ruotare(n) nsteps to the right. Senè negativo ruota a sinistra.Bene)
chiaro() Rimuove tutti gli elementi dalla deque.SU)
conteggio(valore) Conta il numero di occorrenze divaluenella deque.SU)
Restituisce l'indice della prima occorrenza divaluenella deque. AlzaValueErrorSU)
inversione() Inverte gli elementi della deque in atto.SU)

Aggiunta ed eliminazione di elementi di rimozione dalla coda

  • aggiungere(x): Aggiunge x all'estremità destra della deque.
  • Aggiunge x all'estremità sinistra della deque.
  • estendere(iterabile): Aggiunge tutti gli elementi dall'iterabile all'estremità destra.
  • extendleft(iterabile): Aggiunge tutti gli elementi dall'iterabile all'estremità sinistra (in ordine inverso).
  • rimuovi(valore): Rimuove la prima occorrenza del valore specificato dalla deque. Se il valore non viene trovato, viene generato un ValueError.
  • pop(): Rimuove e restituisce un elemento dall'estremità destra.
  • popleft(): Rimuove e restituisce un elemento dall'estremità sinistra.
  • chiaro(): Rimuove tutti gli elementi dalla deque.
Python
from collections import deque dq = deque([10 20 30]) # Add elements to the right dq.append(40) # Add elements to the left dq.appendleft(5) # extend(iterable) dq.extend([50 60 70]) print('After extend([50 60 70]):' dq) # extendleft(iterable) dq.extendleft([0 5]) print('After extendleft([0 5]):' dq) # remove method dq.remove(20) print('After remove(20):' dq) # Remove elements from the right dq.pop() # Remove elements from the left dq.popleft() print('After pop and popleft:' dq) # clear() - Removes all elements from the deque dq.clear() # deque: [] print('After clear():' dq) 

Produzione:

After extend([50 60 70]): deque([5 10 20 30 40 50 60 70])  
After extendleft([0 5]): deque([5 0 5 10 20 30 40 50 60 70])
After remove(20): deque([5 0 5 10 30 40 50 60 70])
After pop and popleft: deque([0 5 10 30 40 50 60])
After clear(): deque([])

Accesso all'elemento e lunghezza della deque

  • Indicizzazione: Accedi agli elementi per posizione utilizzando indici positivi o negativi.
  • soltanto(): Restituisce il numero di elementi nella deque.
Python
import collections dq = collections.deque([1 2 3 3 4 2 4]) # Accessing elements by index print(dq[0]) print(dq[-1]) # Finding the length of the deque print(len(dq)) 

Produzione
1 4 7 

Conteggio Rotazione e Inversione di una deque

  • conteggio(valore): Questo metodo conta il numero di occorrenze di un elemento specifico nella deque.
  • ruotare(n): Questo metodo ruota la deque di n passi. La n positiva ruota a destra e la n negativa ruota a sinistra.
  • inversione(): Questo metodo inverte l'ordine degli elementi nella deque.
Python
from collections import deque # Create a deque dq = deque([10 20 30 40 50 20 30 20]) # 1. Counting occurrences of a value print(dq.count(20)) # Occurrences of 20 print(dq.count(30)) # Occurrences of 30 # 2. Rotating the deque dq.rotate(2) # Rotate the deque 2 steps to the right print(dq) dq.rotate(-3) # Rotate the deque 3 steps to the left print(dq) # 3. Reversing the deque dq.reverse() # Reverse the deque print(dq) 

Produzione
3 2 deque([30 20 10 20 30 40 50 20]) deque([20 30 40 50 20 30 20 10]) deque([10 20 30 20 50 40 30 20])