deque
Usare code rapide a doppia estremità
deque è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.
Che cos'è un deque?
Un deque (pronunciato 'deck') è una coda a doppia estremità del modulo collections. Supporta inserimenti e rimozioni rapidi da entrambe le estremità.
Lo importi con from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Perché non usare semplicemente una lista?
Le liste sono lente quando si inseriscono o rimuovono elementi all'inizio, perché ogni elemento deve essere spostato. Un deque esegue le operazioni all'inizio in tempo costante, quindi è ideale per le code.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Aggiungere elementi a entrambe le estremità
Utilizzi .append() per aggiungere elementi a destra e .appendleft() per aggiungerli a sinistra.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Estrarre elementi da entrambe le estremità
.pop() rimuove e restituisce l'elemento più a destra; .popleft() rimuove quello più a sinistra. Entrambi sono veloci.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)Una coda semplice (FIFO)
Per ottenere un comportamento first-in-first-out, aggiunga elementi a destra e utilizzi popleft a sinistra. Gli elementi escono nello stesso ordine in cui sono arrivati.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Deque con dimensione massima
Specifichi un maxlen per limitare le dimensioni. Quando è piena, l'aggiunta di un elemento a un'estremità elimina automaticamente un elemento dall'altra: è ideale per conservare la cronologia recente.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Ruotare gli elementi
.rotate(n) sposta gli elementi a destra di n posizioni; un valore n negativo ruota gli elementi a sinistra. Gli elementi ricompaiono all'estremità opposta.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Estendere in blocco
.extend() aggiunge molti elementi a destra e .extendleft() li aggiunge a sinistra. Tenga presente che extendleft inverte l'ordine degli elementi aggiunti.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Indicizzazione e lunghezza
Un deque supporta l'indicizzazione come una lista e funziona con len(). Accedere agli elementi centrali è più lento che accedere alle estremità, quindi preferisca le operazioni sulle estremità.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Svuotare e invertire
.reverse() inverte il deque sul posto, mentre .clear() lo svuota. Entrambi modificano direttamente il deque.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Contare le occorrenze
Come una lista, un deque dispone di .count() per contare quante volte compare un valore.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Verifica rapida
Sta costruendo una coda FIFO con un deque. Quale coppia di metodi mantiene il corretto ordine first-in-first-out?
Riepilogo: deque
Ha imparato che un deque:
- Supporta operazioni rapide di
append/popsu entrambe le estremità, a differenza di una lista. - Dispone di
appendleftepopleftper il lato sinistro. - Può avere dimensioni limitate con
maxlenper conservare solo gli elementi recenti. - Offre
rotate,extend,reverseecountper operazioni tipiche delle code.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Domande Frequenti
La lezione «deque» è gratuita?
Sì — il testo completo di «deque» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.
Cosa imparerò in «deque»?
Usare code rapide a doppia estremità Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Python Academy?
Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «deque»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Python Academy?
Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.