0Pricing
Python Academy · Lezione

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/pop su entrambe le estremità, a differenza di una lista.
  • Dispone di appendleft e popleft per il lato sinistro.
  • Può avere dimensioni limitate con maxlen per conservare solo gli elementi recenti.
  • Offre rotate, extend, reverse e count per 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.

Tutte le lezioni di questo corso

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple e OrderedDict
← Torna a Python Academy