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
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'])