Strutture dati di Python: una guida veloce

python - studiare intelligenza artificiale

Condividi:

Condividi su facebook
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp
Condividi su telegram

Quali sono le strutture dati in Python?

Ciao e benvenuto a questo nuovo articolo per la serie di Python.

Dopo averti spiegato come installare Python e quali sono i migliori IDE per questo linguaggio, oggi voglio spiegarti quali sono le strutture dati di base di Python.

Non sarà una guida esaustiva, ma voglio farti capire le cose essenziali, starà poi a te approfondirle meglio.

Ti consiglio di non leggere passivamente questo articolo, ma di mettere subito in pratica quello che ti farò vedere.

In questo modo, i concetti che ti mostrerò ti rimarranno meglio in mente per gli articoli futuri.

Non perdiamo altro tempo e andiamo a vedere quali sono le strutture dati in Python.

Strutture dati: definizione

Ormai mi conosci e sai che non inizio a fare un articolo se prima non ti ho dato qualche definizione!

In questo caso, voglio dirti di preciso cosa sia una struttura dati.

Una struttura dati è un’entità usata per organizzare un insieme di dati all’interno della memoria del computer, ed eventualmente per memorizzarli in una memoria più grande.

Ciascun linguaggio di programmazione offre strumenti, più o meno sofisticati, per definire strutture dati, ovvero aggregare dati di tipo omogeneo o eterogeneo.

Le strutture dati di base in Python di cui ti voglio parlare oggi sono:

  • Liste
  • Dizionari
  • Tuple
  • Array

Per parlarti di queste strutture dati, userò uno strumento chiamato Qt-console.

La Qt-console è una sorta di terminale, dove poi scrivere righe di codice in Python e vedere subito i risultati delle tue operazioni.

Qt-console può essere scaricato e installato tramite Anaconda.

Anaconda è una piattaforma molto utilizzata in ambito Data Science e Intelligenza Artificiale, dove potrai trovare anche altre risorse tra cui Jupyter NoteBook, del quale ti parlerò nei prossimi articoli.

Ti lascio qui il link alla pagina di Anaconda, dove potrai scaricare la piattaforma e al suo interno trovare Qt-console.

Dopo che avrai installato Qt-console, ti troverai un terminale di questo tipo:


Ora che abbiamo tutti gli strumenti necessari per analizzare le strutture dati di Python, vediamole una ad una.

Liste

La prima struttura dati che vediamo è la lista.

La lista è una collezione di elementi, i quali possono essere di diverso tipo.

Questo vuol dire che una lista può essere fatta di soli numeri interi, soli numeri reali, soli numeri complessi, sole stringhe, oppure un miscuglio di questi.

Una lista può essere definita attraverso la funzione list():

lista_1 = list()

la quale definisce lista_1 come una lista vuota.

Oppure si può creare una lista specificando la sequenza dei valori degli elementi all’interno di essa, separati da virgole all’interno di due parentesi quadre.

In questo caso ho creato una lista di numeri interi.

Nella figura seguente puoi vedere alcune tipologie di liste:

Puoi addirittura mettere come elemento un’altra lista:

Puoi accedere a qualsiasi elemento di una lista attraverso le doppie parentesi quadre e indicando all’interno l’indice dell’elemento.

IMPORTANTE: per le liste come per altre strutture dati di Python, l’indicizzazione degli elementi comincia da zero.

Per cui, se si vuole accedere al primo elemento di una lista, dovremmo scrivere:

Le liste sono strutture dati modificabili, ovvero puoi accedere ad un elemento e modificarlo:

Alcune operazioni che puoi applicare sulle liste sono la concatenazione e la replicazione.

La prima può essere fatta attraverso l’operatore +. Esso concatena le stringhe ad esso assegnate come operandi:

La seconda viene eseguita con il *. Esso replica una stringa un certo numero di volte, a seconda del valore assegnato. Ad esempio:

Per aggiungere un nuovo elemento in una lista, si usa la funzione append()

Dizionari

Un dizionario è una collezione di coppie chiave-valore.

Per creare un dizionario, puoi utilizzare la funzione dict():

dict_1 = dict()

la quale ti darà un dizionario vuoto.

Altrimenti, puoi creare un dizionario scrivendo una sequenza di coppie di elementi i cui valori sono separati da due punti, separate da una virgola.

La sequenza delle coppie deve trovarsi all’interno di due parentesi graffe e gli elementi della coppia chiave-valore possono essere di qualsiasi tipo.

In figura puoi vedere un esempio di dizionario:

L’unica imposizione è che la chiave della coppia chiave-valore, ovvero il numero sulla sinistra dei : deve essere unica nel dizionario.

Il dizionario è modificabile come una lista e per accedere ad un suo elemento si usano le parentesi quadre, specificando al loro interno la chiave del valore che si vuole modificare.

Non puoi modificare una chiave presente in un dizionario e per aggiungere una nuova coppia chiave-valore puoi scrivere:

Tuple

I tuple sono un’altro tipo di sequenza di elementi, simili alle liste.

Per creare un tuple vuoto, si può utilizzare la funzione tuple()

tuple_1 = tuple()

Altrimenti, puoi andarlo a riempire con degli elementi.

Gli elementi possono essere di qualsiasi tipo e anche di diverso tipo tra di loro.

I valori degli elementi devono essere separati da delle virgole e la sequenza dei valori deve essere scritta all’interno di due parentesi tonde.

Ti potrai chiedere che differenza c’è con le liste.

In realtà una differenza c’è ed è che i tuple sono delle strutture immodificabili.

Non puoi accedere e modificare un elemento di un tuple.

Non puoi nemmeno appendere un elemento ad un tuple preesistente e non puoi ordinarlo.

Puoi solamente contare gli elementi ed accedere senza modificare ad un elemento del tuple stesso.

Array

Parliamo dell’ultima struttura dati di questo articolo, ovvero gli array.

Gli array sono struttura dati che presenta alcune differenze con le precedenti appena descritte. In particolare:

  • Gli array hanno una dimensione fissa, che è quella specificata all’atto della creazione.
  • Gli elementi in un array devono essere tutti dello stesso tipo.
  • Gli array vengono utilizzati in ambito matematico e scientifico.

Per creare un array, occorre prima di tutto importare un modulo denominato numpy.

La creazione di un array avviene poi in questo modo.

import numpy as np

arr_1 = np.array([])

e questi comandi creeranno un array vuoto.

Se vogliamo creare un array con degli elementi già al suo interno, dobbiamo scrivere così:

Per accedere ad un elemento dell’array, si utilizza la stessa metodologia vista con le liste.

Una cosa importante per gli array è che possono avere più dimensioni.

Ovvero, gli array visti prima hanno una sola dimensione, ma possiamo scrivere anche array con più di una dimensione.

Ad esempio, per creare un array avente due dimensioni, possiamo scrivere così:

Con gli array possiamo eseguire delle operazioni matematiche che funzionano elemento per elemento, come puoi vedere in figura.

Ultimi consigli

Per approfondire meglio queste strutture dati, ti consiglio di utilizzare la funzione dir():

dir(list())

dir(dict())

dir(tuple())

Questa funzione ti dirà il nome delle funzioni che puoi utilizzare su queste strutture dati.

Scegli una funzione e vai a vedere sul web quale è la sua sintassi e poi applicala nei tuoi programmi.

Ti consiglio come sito sulla programmazione, il sito di W3schools

Per gli array, ti consiglio invece di leggerti la documentazione ufficiale di Numpy, che puoi trovare a questo link.

Conclusioni

Come già avevo detto all’inizio, questo articolo non aveva e non ha la pretesa di essere una guida completa sulle strutture dati di Python.

L’obbiettivo era quello di spronarti a provare a scrivere quello che ti ho fatto vedere e a incuriosirti sulle funzioni che trattano queste strutture dati.

In un prossimo articolo, ti mostrerò delle librerie e delle funzioni da utilizzare per mostrare dei valori in alcune di queste strutture dati e te ne mostrerò anche una nuova: il dataframe.

Condividi su facebook
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp
Condividi su telegram
Fabio Bernardini

Fabio Bernardini

Sono laureato in Ingegneria delle Telecomunicazioni e adesso lavoro come dottorando al Dipartimento di Ingegneria dell’Informazione a Pisa. Mi occupo di progettare sistemi di localizzazione in tempo reale in ambienti indoor o outdoor in ambito Internet of Things per l’Artificial Intelligence e il Data Science. Sono in costante contatto con persone che come me credono che l’Internet of Things sia la base per la rivoluzione digitale del nostro Paese. Per tale motivo creo contenuti su questo ambito e mi aggiorno continuamente.

Iscriviti
Notificami
guest
0 Commenti
Inline Feedback
Vedi tutti i commenti
Neuragate