Array In Python
Lezione: Array in Python¶
Obiettivi della Lezione¶
Al termine di questa lezione, sarai in grado di:
- Comprendere cosa sono gli array in Python e quando utilizzarli.
- Creare e manipolare array utilizzando il modulo
array
. - Distinguere tra array e altre strutture dati come liste e numpy arrays.
- Effettuare operazioni comuni sugli array come inserimento, rimozione e iterazione.
Introduzione¶
In Python, le liste sono comunemente utilizzate per gestire raccolte di elementi. Tuttavia, quando si lavora con grandi quantità di dati numerici, potrebbe essere più efficiente utilizzare gli array. Gli array offrono un modo più performante e specifico per gestire dati omogenei, ovvero elementi dello stesso tipo. In questa lezione, esploreremo come utilizzare gli array in Python, le loro caratteristiche e i casi d’uso ideali.
Spiegazione Teorica¶
Cos’è un Array?¶
Un array è una struttura dati che contiene una collezione di elementi, tutti dello stesso tipo. A differenza delle liste, che possono contenere tipi diversi, gli array sono omogenei, il che permette una gestione della memoria più efficiente.
Modulo array
in Python¶
Python fornisce il modulo built-in array
che permette di creare array con tipizzazione dei dati. Questo modulo è particolarmente utile quando si ha bisogno di un array più efficiente in termini di spazio rispetto a una lista normale.
Sintassi di Base¶
Per utilizzare gli array in Python, è necessario importare il modulo array
:
import array
La creazione di un array avviene tramite:
# Creazione di un array di numeri interi (typecode 'i')
array_name = array.array('i', [1, 2, 3, 4, 5])
print(array_name)
array('i', [1, 2, 3, 4, 5])
typecode
: un carattere che definisce il tipo degli elementi nell’array.[element1, element2, ...]
: la lista di elementi iniziali dell’array.
Typecode Comuni¶
Typecode | Tipo C | Tipo Python | Dimensione (byte) |
---|---|---|---|
'b' |
signed char | int | 1 |
'B' |
unsigned char | int | 1 |
'u' |
Py_UNICODE | Unicode | 2 |
'h' |
signed short | int | 2 |
'H' |
unsigned short | int | 2 |
'i' |
signed int | int | 2 |
'I' |
unsigned int | int | 2 |
'l' |
signed long | int | 4 |
'L' |
unsigned long | int | 4 |
'f' |
float | float | 4 |
'd' |
double | float | 8 |
import array
# Creazione di un array di interi con typecode 'i'
numeri = array.array('i', [1, 2, 3, 4, 5])
print(numeri)
array('i', [1, 2, 3, 4, 5])
Accesso agli Elementi¶
# Accesso all'elemento in posizione 0
print(numeri[0]) # Output: 1
# Accesso all'ultimo elemento
print(numeri[-1]) # Output: 5
1 5
Aggiunta di Elementi¶
# Aggiunta di un elemento alla fine dell'array
numeri.append(6)
print(numeri) # Output: array('i', [1, 2, 3, 4, 5, 6])
# Inserimento di un elemento in una posizione specifica
numeri.insert(0, 0)
print(numeri) # Output: array('i', [0, 1, 2, 3, 4, 5, 6])
array('i', [1, 2, 3, 4, 5, 6]) array('i', [0, 1, 2, 3, 4, 5, 6])
Rimozione di Elementi¶
# Rimozione di un elemento specifico
numeri.remove(3)
print(numeri) # Output: array('i', [0, 1, 2, 4, 5, 6])
# Rimozione dell'ultimo elemento
ultimo = numeri.pop()
print(ultimo) # Output: 6
print(numeri) # Output: array('i', [0, 1, 2, 4, 5])
array('i', [0, 1, 2, 4, 5, 6]) 6 array('i', [0, 1, 2, 4, 5])
Iterazione su un Array¶
for numero in numeri:
print(numero)
0 1 2 4 5
numeri.reverse()
print(numeri) # Output: array('i', [5, 4, 2, 1, 0])
array('i', [5, 4, 2, 1, 0])
Contare Occorrenze¶
occorrenze = numeri.count(2)
print(occorrenze) # Output: 1
1
Esercizi Interattivi¶
Creare un Array di Float
Crea un array di float contenente i numeri
1.0
,2.0
,3.5
,4.5
.# Il tuo codice qui
Aggiungere e Rimuovere Elementi
- Aggiungi il numero
5.5
alla fine dell’array creato. - Rimuovi il numero
2.0
dall’array.
# Il tuo codice qui
- Aggiungi il numero
Iterare e Calcolare la Somma
Calcola la somma di tutti gli elementi nell’array.
# Il tuo codice qui
Soluzioni degli Esercizi¶
Creare un Array di Float
import array numeri_float = array.array('f', [1.0, 2.0, 3.5, 4.5]) print(numeri_float)
Aggiungere e Rimuovere Elementi
numeri_float.append(5.5) numeri_float.remove(2.0) print(numeri_float)
Iterare e Calcolare la Somma
somma = 0 for numero in numeri_float: somma += numero print("La somma è:", somma)
Buone Pratiche e Consigli¶
- Utilizzo Appropriato degli Array: Usa gli array quando hai bisogno di una struttura dati più efficiente in termini di memoria per dati omogenei.
- Scelta del Typecode Corretto: Assicurati di scegliere il typecode appropriato in base al tipo di dati che devi memorizzare.
- Gestione degli Errori: Presta attenzione quando rimuovi elementi; cercare di rimuovere un elemento non presente nell’array genererà un errore.
- Confronto con Liste: Ricorda che, a differenza delle liste, gli array non supportano operazioni con elementi di tipo diverso da quello specificato.
Conclusione¶
Gli array in Python offrono un modo efficiente per gestire collezioni di dati omogenei. Sebbene le liste siano più flessibili, gli array possono essere più performanti in termini di utilizzo della memoria e velocità di esecuzione per determinati tipi di applicazioni, specialmente quando si lavora con grandi quantità di dati numerici.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Array
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: Array in Python