Python è uno dei linguaggi più amati da chi inizia a programmare perché ha una sintassi chiara, leggibile e molto potente. In questa guida pratica vedremo 4 strutture fondamentali che userai ogni giorno:
- Stringhe
- Liste
- Tuple
- Dizionari
Per ogni argomento troverai:
- spiegazione semplice
- esempi pratici
- casi d’uso reali
- slicing spiegato passo passo
1) Le stringhe in Python
Le stringhe in Python (in inglese strings) sono una delle strutture dati fondamentali e servono per rappresentare e manipolare sequenze di caratteri, cioè testo. Possono contenere lettere, numeri, simboli e spazi, e vengono racchiuse tra virgolette singole (' '), doppie (" ") o triple (''' ''' o """ """) quando si lavora con testi su più righe.
Dal punto di vista tecnico, una stringa è una sequenza ordinata e immutabile di caratteri Unicode. Questo significa due cose molto importanti:
Immutabile → una volta creata, la stringa non può essere modificata direttamente (ogni operazione crea una nuova stringa)
Ordinata → ogni carattere ha una posizione precisa (indice), a partire da 0
Accesso ai caratteri
Ogni carattere ha una posizione chiamata indice.
parola = "Python"
print(parola[0]) # P
print(parola[1]) # y
print(parola[-1]) # n
Slicing delle stringhe
Lo slicing delle stringhe in Python è una tecnica che ti permette di estrarre porzioni di testo da una stringa in modo semplice e molto potente.
Lo slicing serve per prendere una “fetta” (slice) di una stringa.
Come funziona
- start = da dove partire
- stop = dove fermarsi (escluso)
- step = ogni quanti elementi muoversi
Caso reale: ottenere il dominio di una email.
email = "utente@gmail.com"
dominio = email[email.index("@") + 1:]
print(dominio)
2) Le liste in Python
Le liste in Python (in inglese lists) sono una delle strutture dati più importanti e versatili del linguaggio. Servono per memorizzare collezioni ordinate di elementi, che possono essere modificati nel tempo.
Una lista può contenere qualsiasi tipo di dato: numeri, stringhe, booleani e persino altre liste. Gli elementi sono racchiusi tra parentesi quadre [] e separati da virgole.
numeri = [10, 20, 30, 40]
print(numeri)
Accesso agli elementi
print(frutta[0])
print(frutta[-1])
Slicing delle liste
Lo slicing sulle liste funziona come sulle stringhe.
Esempio pratico reale
Prendere i primi 3 prodotti di un e-commerce:
prodotti = ["pc", "mouse", "tastiera", "monitor", "webcam"]
primi_tre = prodotti[:3]
print(primi_tre)
3) Le tuple in Python
Le tuple in Python (in inglese tuples) sono una struttura dati utilizzata per memorizzare insiemi ordinati di elementi, molto simili alle liste, ma con una differenza fondamentale: sono immutabili. Una tupla è una sequenza di valori racchiusi tra parentesi tonde () e separati da virgole, questo significa che una volta create non possono essere modificate.
coordinate = (10, 20)
print(coordinate)
Le tuple sono molto utili quando i dati non devono cambiare.
Esempi classici:
- coordinate GPS
- date
- colori RGB
- configurazioni
- risultati restituiti da funzioni
data = (13, 4, 2026)
rgb = (255, 128, 0)
Perché usare le tuple?
Le tuple sono perfette quando vuoi proteggere i dati da modifiche accidentali.
Ad esempio una posizione su una mappa non dovrebbe cambiare per errore:
posizione = (41.9028, 12.4964)
Se provi a modificarla:
posizione[0] = 50
otterrai errore, perché la tupla è immutabile.
Accesso agli elementi
coordinate = (10, 20, 30, 40)
print(coordinate[0])
print(coordinate[1])
print(coordinate[-1])
Tuple packing e unpacking
Una funzione molto usata è spacchettare i valori: guarda il video e capisci come!
Slicing delle tuple
Anche le tuple supportano lo slicing come stringhe e liste.
Esempio pratico su cui puoi fare delle prove
mesi = ("gen", "feb", "mar", "apr", "mag", "giu")
primo_trimestre = mesi[:3]
print(primo_trimestre)
Altro esempio reale
Prendere solo giorno e mese da una data:
data = (13, 4, 2026)
print(data[:2])
Differenza tra lista e tupla
lista = [1, 2, 3]
tupla = (1, 2, 3)
Usa:
- lista → se i dati devono cambiare
- tupla → se i dati devono restare fissi
Le tuple sono anche leggermente più veloci e consumano meno memoria.
4) I dizionari in Python
I dizionari in Python (in inglese dictionaries) sono una struttura dati fondamentale che permette di memorizzare informazioni in formato chiave → valore (key → value). Sono estremamente utili per rappresentare dati strutturati, simili agli oggetti del mondo reale.
Un dizionario è una collezione di elementi racchiusi tra parentesi graffe {}.
Slicing nei dizionari: cosa bisogna sapere
Qui c’è una cosa importante: i dizionari non supportano lo slicing diretto.
Questo succede perché non sono basati su posizioni numeriche come liste e stringhe.
Metodo corretto
Per “simulare” uno slicing bisogna convertire chiavi o valori in lista.
utente = {
"nome": "Giulia",
"eta": 24,
"citta": "Catania",
"lavoro": "developer"
}
chiavi = list(utente.keys())
print(chiavi[:2])
Output:
['nome', 'eta']
Esempio pratico
valori = list(utente.values())
print(valori[1:3])
Differenze rapide tra le strutture
| Struttura | Ordinata | Modificabile | Supporta slicing |
|---|---|---|---|
| Stringa | Sì | No | Sì |
| Lista | Sì | Sì | Sì |
| Tupla | Sì | No | Sì |
| Dizionario | Sì* | Sì | Non diretto |
* Nei dizionari moderni Python mantiene l’ordine di inserimento.
Mini esercizi per principianti
1. Stringhe
Fornire un algoritmo che calcoli le occorrenze di ‘c’ in una stringa.
2. Liste
Fornire un algoritmo che che presa una lista di stringhe restituisca una stringa costituita da tutte le stringhe della lista ma in ordine inverso
3. Tuple
Crea una tupla numeri = (3, 7, 2, 7, 9, 7). Stampa quante volte compare il numero 7 nella tupla. Trova l’indice (posizione) della prima occorrenza di 7.
4. Dizionari
Crea un dizionario classe dove le chiavi sono i nomi degli studenti e i valori sono i loro voti (interi). Stampa il voto di uno studente specifico. Calcola e stampa la media dei voti. Trova e stampa lo studente con il voto più alto.
Conclusione
Se stai iniziando con Python, padroneggiare stringhe, liste, tuple e dizionari è fondamentale.
Lo slicing è una tecnica potentissima perché ti permette di:
- leggere porzioni di dati
- filtrare velocemente
- invertire sequenze
- estrarre blocchi utili
Il consiglio migliore è fare pratica ogni giorno con piccoli esercizi.
Una volta capite queste 4 strutture, sarai pronto per affrontare:
- cicli
fore while - funzioni
- classi e oggetti
- data analysis
con molta più sicurezza.





