pila di Python

Gli stack sono un’importante struttura di dati con un’ampia gamma di utilizzi.

Nella programmazione, gli stack consentono di archiviare i dati in un ordine LIFO (ultimo ad entrare, primo ad uscire). Ciò significa che l’ultimo elemento memorizzato in uno stack è il primo che verrà elaborato.

Ma come si crea uno stack in Python? Questa è la domanda a cui risponderemo in questa guida. Alla fine della lettura di questa guida, sarai un esperto nella creazione e nell’utilizzo degli stack in Python.

Python Stack

Gli stack archiviano i dati in un last-in , ordine LIFO (first-out).

Per aiutarti a capire come funziona questo ordine, prendi in considerazione una pila di piatti. Quando hai una pila di piatti da pulire, il primo piatto che sposterai è quello in alto. Quindi, spostando i piatti, sarai in grado di accedere a quelli più in basso nello stack.

Gli stack sono l’opposto delle code in Python. Le code rimuovono l’elemento aggiunto meno di recente (perché utilizzano la struttura first-in, first-out), mentre le pile rimuovono l’elemento aggiunto più di recente (perché utilizzano la struttura last-in, first-out).

Gli stack in genere supportano due operazioni: push e pop. Il push ti consente di aggiungere un elemento in cima a uno stack e il popping ti consente di rimuovere l’elemento in cima allo stack.

In Python, ci sono due approcci principali che puoi usare per creare uno stack: utilizzando elenchi incorporati e utilizzando la classe collections.deque(). Analizziamo come funziona ciascuno di questi approcci.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

I dati dell’elenco integrato type ti permette di creare uno stack in Python.

Poiché gli elenchi Python sono implementati come array, è possibile aggiungere e rimuovere facilmente gli elementi. Inoltre, l’ordine in cui si inseriscono i valori in un elenco verrà preservato, il che significa che è possibile rimuovere facilmente il primo e l’ultimo elemento in un elenco.

Supponiamo di voler creare uno stack che memorizzi un elenco di compiti a casa in una classe. L’insegnante vuole valutare questi compiti nell’ordine in cui appaiono la pila (quindi, il compito consegnato per primo sarà in fondo alla pila e l’incarico consegnato per ultimo sarà in cima alla pila).

Aggiungi elementi alla pila

Per aggiungere elementi a una pila, possiamo usare il metodo append().Potremmo creare la nostra pila di compiti a casa usando il seguente codice:

Il nostro codice restituisce:

Nel nostro codice, prima dichiariamo una lista chiamata assignments. Quindi, usiamo il metodo append() per aggiungere tre nomi alla nostra lista di compiti che sono stati consegnati. I nomi che aggiungiamo sono, nell’ordine: Hannah, Benny, Gordon. Poiché Gordon ha consegnato il suo compito per ultimo, appare nella posizione finale della nostra lista.

Rimuovi elementi dalla pila

Supponiamo di aver valutato il compito di Gordon e vogliamo scoprire quale è il prossimo al voto. Ciò comporta la rimozione dell’elemento in cima al nostro stack.

Per rimuovere un elemento dal nostro stack, possiamo usare il metodo pop(). Ecco il codice che potremmo usare per rimuovere l’elemento in cima al nostro stack:

Il nostro codice restituisce:

Il nome di Gordon ha è stato rimosso dallo stack utilizzando pop(), quindi il nostro stack ora contiene solo due nomi: Hannah e Benny.

Classe collections.deque

La classe deque nella libreria delle collezioni ti consente di creare una coda a doppia estremità.

L’oggetto deque è implementato come un elenco a doppio collegamento, il che significa che ha prestazioni forti e coerenti durante l’inserimento e l’eliminazione di elementi.Inoltre, poiché la libreria delle raccolte fa parte della libreria standard di Python, puoi importarla nel tuo codice senza doverla scaricare una libreria esterna.

Per lavorare con la classe collections.deque, dobbiamo prima importarla nel nostro codice utilizzando un’istruzione import:

Torniamo al nostro esempio di compiti a casa di prima per illustrare come La classe collection.deque funziona.

Aggiungi elementi a uno stack Deque

A aggiungere elementi a uno stack deque, possiamo usare il metodo append(). Supponiamo di voler creare una coda con i nostri compiti a casa usando la classe deque. Potremmo farlo usando questo codice:

Il nostro codice restituisce:

Scomponiamo il nostro codice . Innanzitutto, importiamo la classe deque dalla libreria delle collezioni. Quindi, creiamo un deque usando deque() e lo assegniamo alla variabile assignments.

Successivamente, aggiungiamo tre nomi al nostro incarichi successivi: Hannah, Benny e Gordon. Infine, stampiamo sulla console il contenuto della coda dei compiti.

"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarmi a un bootcamp. Due mesi dopo la laurea, Ho trovato il lavoro dei miei sogni in linea con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

Puoi vedere che, in questo esempio, i nostri dati sono memorizzati come deque invece che come stack (indicato dal fatto che il nostro risultato è racchiuso tra deque()). Questo perché stiamo usando la struttura deque, anche se i nostri dati si comportano ancora come uno stack.

Rimuovi elementi da uno stack deque

Per rimuovere elementi da uno stack deque , puoi usare il metodo pop().

Supponiamo di aver appena valutato i compiti di Gordon e Benny. Per rimuoverli dal nostro stack, potremmo utilizzare il seguente codice:

Il nostro codice restituisce:

Nel nostro codice, creiamo prima uno stack deque con tre valori. Quindi, eseguiamo pop() due volte. Ogni volta che viene eseguita l’istruzione pop(), l’elemento in cima allo stack viene rimosso. Ciò significa che i valori Gordon e Benny vengono rimossi dal nostro stack, lasciando Hann ah come unico elemento rimasto nel nostro stack.

Per saperne di più sulla classe Python deque, leggi il nostro tutorial sulle code Python e deques.

Conclusione

Gli stack ti consentono di memorizzare i dati in un ordine last-in, first-out. Esistono diversi modi per implementare uno stack in Python, ma i due approcci più pratici sono utilizzare la struttura dell’elenco incorporata in Python o utilizzare la classe collections.deque().

Questo tutorial ha discusso, con riferimento ad esempi, come creare uno stack in Python usando liste e collections.deque(). Ora sei pronto per iniziare a creare i tuoi stack come uno sviluppatore Python professionista!