deque (pronuncia deck) ) è una struttura dati contenuta nel modulo collections.
Realizza una double-ended queue, una coda con accesso da entrambi i lati.
Rispetto a una lista ottimizza le operazioni di inserimento e rimozione sul lato sinistro.
Costruttori
collections.deque() |
Crea una coda doppia vuota |
collections.deque(z) |
Crea una coda doppia contenente gli elementi presi dall’oggetto iterabile specificato |
collections.deque(z, n) |
Si specifica, con un numero, la lunghezza massima della coda. Raggiunta la lunghezza massima, per ogni elemento aggiunto verrà eliminato un elemento dalla parte opposta. |
... |
… |
Operatori
- x=d[p], restituisce l’elemento alla posizione p
- x in d, appartenenza di x a d
- x not in d, NON appartenenza di x a d
- n * d, restituisce una coda con gli elementi di d ripetuti n volte
- d *= n, aggiorna la coda d con n copie…
- d1 + d2, restituisce una coda con gli elementi di d1 seguiti da quelli di d2
- d1 += d2, aggiorna la coda d1 aggiungendo gli elementi di d2
Attributo di sola lettura
- maxlen, il numero massimo di elementi (se non è stato impostato vale None)
Funzioni / Metodi
d.append(x) |
Aggiunge x alla coda (a destra) |
d.appendleft(x) |
Aggiunge x alla coda a sinistra |
d.clear() |
Elimina tutto il contenuto (lunghezza=0) |
d.copy() |
Crea una copia superficiale della coda |
d.count(x) |
Restituisce quante volte compare l’elemento x |
d.extend(z) |
Aggiunge gli elementi di z alla coda (a destra) |
d.extendleft(z) |
Aggiunge gli elementi di z alla coda a sinistra (uno dopo l’altro…) |
d.index(x) |
Restituisce la prima posizione di x nella coda. Accetta anche start, stop. Provoca un errore se x non è presente. |
d.insert(p, x) |
Inserisce x alla posizione p |
len(d) |
Restituisce il numero di elementi presenti |
max(c) |
Restituisce l’elemento più grande |
min(c) |
Restituisce l’elemento più piccolo |
d.pop() |
Restituisce e rimuove l’elemento più a destra. Restituisce un errore se non ci sono elementi. |
d.popleft() |
Restituisce e rimuove l’elemento più a sinistra. Restituisce un errore se non ci sono elementi. |
d.remove(x) |
Elimina la prima occorrenza di x. Provoca un errore se x non è presente. |
sum(d) |
Restituisce la somma degli elementi (se è possibile) |
d.reverse() |
Capovolge il contenuto della coda. |
reversed(d) |
Restituisce un iteratore alla coda capovolta. |
d.rotate(n=1) |
Ruota la coda verso destra di n posizioni (l’elemento più a destra diventa il primo a sinistra. Se n è negativo la rotazione è verso sinistra. |
... |
… |
Prova
1 2 3 4 5 6 7 8 9 10 11 12 |
d=deque() # deque([]) d=deque("arcobaleno") # deque(['a', 'r', 'c', 'o', 'b', 'a', 'l', 'e', 'n', 'o']) d=deque(['red', 'green', 'blue']) # deque(['red', 'green', 'blue']) x=len(d) # x=3 x=max(d) # x='red' x=min(d) # x='blue' for x in d: # x='red', 'green', 'blue' ... d.rotate() # deque(['blue', 'red', 'green']) |