Python - Dizionari

Ciao, aspiranti programmatori! Oggi, esploreremo il fascinante mondo dei dizionari di Python. Come il vostro amichevole insegnante di informatica, sono entusiasta di guidarvi in questo viaggio. Quindi, prenda il vostro bevanda preferita, si rilassi e iniziamo questa avventura insieme!

Python - Dictionaries

Dizionari in Python

Immagina di creare un agenda digitale. Vuoi memorizzare informazioni sui tuoi amici, come i loro nomi, numeri di telefono e indirizzi email. Come faresti? Ecco i dizionari di Python!

Un dizionario in Python è come un dizionario del mondo reale, ma invece di definizioni di parole, memorizza coppie chiave-valore. È una collezione che è disordinata, modificabile e non permette duplicati.

Caratteristiche Principali dei Dizionari

  1. Coppie Chiave-Valore: Ogni elemento in un dizionario consiste in una chiave e il suo valore corrispondente.
  2. Disordinato: A differenza delle liste, i dizionari non hanno un ordine specifico.
  3. Modificabile: Puoi aggiungere, rimuovere o modificare gli elementi dopo la creazione del dizionario.
  4. Nessun Duplicato: Ogni chiave deve essere unica all'interno di un dizionario.

Creazione di un Dizionario

Iniziamo creando il nostro primo dizionario:

mio_amico = {
"nome": "Alice",
"età": 25,
"città": "New York"
}

In questo esempio, abbiamo creato un dizionario chiamato mio_amico. Le chiavi sono "nome", "età" e "città", e i loro valori corrispondenti sono "Alice", 25 e "New York".

Puoi anche creare un dizionario vuoto e aggiungere elementi più tardi:

dizionario_vuoto = {}
altro_dizionario = dict()  # Utilizzando il costruttore dict()

Accesso agli Elementi del Dizionario

Per accedere agli elementi in un dizionario, utilizza i nomi delle chiavi tra parentesi quadre:

print(mio_amico["nome"])  # Output: Alice

Puoi anche utilizzare il metodo get(), che è più sicuro perché restituisce None se la chiave non esiste (invece di sollevare un errore):

print(mio_amico.get("età"))  # Output: 25
print(mio_amico.get("lavoro"))  # Output: None

Modifica degli Elementi del Dizionario

I dizionari sono mutabili, il che significa che possiamo cambiare il loro contenuto dopo la creazione:

# Cambiando un valore
mio_amico["età"] = 26

# Aggiungendo una nuova coppia chiave-valore
mio_amico["lavoro"] = "Ingegnere"

print(mio_amico)
# Output: {'nome': 'Alice', 'età': 26, 'città': 'New York', 'lavoro': 'Ingegnere'}

Rimozione degli Elementi del Dizionario

Ci sono diversi modi per rimuovere gli elementi da un dizionario:

# Rimuovere un elemento specifico
del mio_amico["età"]

# Rimuovere e restituire un elemento
lavoro = mio_amico.pop("lavoro")

# Rimuovere l'ultimo elemento inserito
ultimo_elemento = mio_amico.popitem()

print(mio_amico)  # Output: {'nome': 'Alice'}

Iterazione in un Dizionario

Puoi iterare in un dizionario in diversi modi:

# Iterazione attraverso le chiavi
for chiave in mio_amico:
print(chiave)

# Iterazione attraverso i valori
for valore in mio_amico.values():
print(valore)

# Iterazione attraverso entrambe le chiavi e i valori
for chiave, valore in mio_amico.items():
print(f"{chiave}: {valore}")

Proprietà delle Chiavi del Dizionario

Le chiavi del dizionario hanno alcune proprietà importanti:

  1. Le chiavi devono essere immutabili (come stringhe, numeri o tuple).
  2. Le chiavi devono essere uniche all'interno di un dizionario.

Per esempio:

dizionario_valido = {
"chiave_stringa": "valore1",
42: "valore2",
(1, 2): "valore3"
}

# Questo genererebbe un errore:
# dizionario_invalido = {[1, 2]: "valore"}  # Le liste non possono essere chiavi

Operatori di Python per i Dizionari

Python fornisce alcuni operatori utili per i dizionari:

# Unione di dizionari (Python 3.5+)
diz1 = {"a": 1, "b": 2}
diz2 = {"c": 3, "d": 4}
unito = {**diz1, **diz2}
print(unito)  # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

# Controllo se una chiave esiste
if "nome" in mio_amico:
print("Nome è nel dizionario")

Metodi dei Dizionari di Python

Ecco una tabella dei metodi comuni dei dizionari:

Metodo Descrizione
clear() Rimuove tutti gli elementi dal dizionario
copy() Restituisce una copia superficiale del dizionario
fromkeys() Crea un nuovo dizionario con le chiavi specificate e il valore
get() Restituisce il valore della chiave specificata
items() Restituisce una lista di coppie (chiave, valore) del dizionario
keys() Restituisce una lista delle chiavi del dizionario
pop() Rimuove e restituisce un elemento con la chiave data
popitem() Rimuove e restituisce l'ultima coppia chiave-valore inserita
setdefault() Restituisce il valore della chiave specificata. Se la chiave non esiste: inserisci la chiave, con il valore specificato
update() Aggiorna il dizionario con le coppie chiave-valore specificate
values() Restituisce una lista di tutti i valori nel dizionario

Funzioni Built-in con i Dizionari

Python fornisce diverse funzioni built-in che funzionano bene con i dizionari:

# Lunghezza di un dizionario
print(len(mio_amico))

# Tipo di un dizionario
print(type(mio_amico))

# Convertire altri tipi di dati in un dizionario
lista_di_tuple = [("a", 1), ("b", 2)]
dizionario_da_lista = dict(lista_di_tuple)
print(dizionario_da_lista)  # Output: {'a': 1, 'b': 2}

Eccoci qua, ragazzi! Abbiamo esplorato la terra dei dizionari di Python, dalla creazione alla manipolazione, dall'iterazione alle funzioni built-in. Ricorda, la pratica rende perfetto, quindi non aver paura di sperimentare questi concetti nel tuo codice.

Mentre chiudiamo, lasciatemi condividere un po' di umorismo di programmazione: Perché i programmatori Python preferiscono usare dizionari? Perché sanno sempre dove sono le loro chiavi! ?

Continua a programmare, restare curioso e ricorda: nel mondo della programmazione, ogni errore è solo una nuova opportunità di apprendimento. Fino alla prossima volta, happy coding!

Credits: Image by storyset