W3docs

Dizionari Python: Accedere agli Elementi

Impara tutti i modi per accedere agli elementi di un dizionario Python: notazione a parentesi, get(), keys(), values(), items(), verifica di appartenenza e accesso a dizionari annidati.

I dizionari Python memorizzano i dati come coppie chiave-valore. Sapere come recuperare quei valori — e cosa succede quando una chiave è mancante — è il fondamento del lavoro con qualsiasi dizionario. Questo capitolo copre ogni tecnica di accesso standard: la notazione a parentesi quadre, il metodo .get(), l'iterazione con .keys(), .values() e .items(), e la verifica di appartenenza con in.

Notazione a Parentesi Quadre

Il modo più diretto per recuperare un valore è scrivere il nome del dizionario seguito dalla chiave tra parentesi quadre.

Accedere al valore di un dizionario tramite chiave

python— editable, runs on the server

Python cerca 'Bob' nella tabella hash e restituisce il suo valore in tempo O(1), indipendentemente dal numero di chiavi presenti nel dizionario.

KeyError quando la chiave è mancante

Se la chiave non esiste, Python solleva un KeyError e interrompe l'esecuzione.

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

print(ages['Dave'])  # KeyError: 'Dave'

Gestisci sempre questo caso — o verificando prima l'appartenenza (vedi la sezione sull'operatore in qui sotto) o usando .get() al suo posto.

Il Metodo .get()

.get(key) restituisce il valore per key se esiste, e None altrimenti — nessuna eccezione viene sollevata.

Usare .get() per accedere in modo sicuro a una chiave del dizionario

python— editable, runs on the server

Fornire un valore predefinito

Passa un secondo argomento a .get() per ricevere un valore di fallback al posto di None:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

color = colors.get('orange', 'unknown')
print(color)  # unknown

Questo è il modo idiomatico per accedere a una chiave che potrebbe essere presente o meno senza dover racchiudere il codice in un blocco try/except.

Verifica di Appartenenza con in

Usa l'operatore in per verificare se una chiave esiste prima di accedervi:

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

if 'Alice' in ages:
    print(ages['Alice'])  # 27

print('Dave' in ages)   # False
print('Bob' in ages)    # True

in verifica solo le chiavi, non i valori. Viene eseguito in tempo O(1) perché i dizionari sono basati su hash.

Accedere a Tutte le Chiavi, i Valori e gli Elementi

I dizionari Python espongono tre oggetti vista che permettono di iterare o ispezionare il loro contenuto senza costruire una lista separata.

.keys() — tutte le chiavi

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.keys())
# dict_keys(['apple', 'banana', 'grape'])

for fruit in colors.keys():
    print(fruit)
# apple
# banana
# grape

.values() — tutti i valori

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.values())
# dict_values(['red', 'yellow', 'purple'])

for color in colors.values():
    print(color)
# red
# yellow
# purple

.items() — coppie chiave-valore

.items() restituisce ogni voce come una tupla (key, value). L'unpacking delle tuple rende questa la vista più utile per la maggior parte dei compiti di iterazione:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

for fruit, color in colors.items():
    print(f'{fruit} is {color}')
# apple is red
# banana is yellow
# grape is purple

Gli oggetti vista sono dinamici — riflettono lo stato attuale del dizionario. Se aggiungi o rimuovi una chiave dopo aver creato una vista, la vista si aggiorna automaticamente.

Accedere agli Elementi in un Dizionario Annidato

Quando il valore di un dizionario è a sua volta un dizionario, concatena le parentesi quadre (o le chiamate a .get()) per raggiungere il valore interno.

Accedere ai valori in un dizionario annidato

python— editable, runs on the server

Per un accesso più sicuro attraverso più livelli, concatena le chiamate a .get():

title = library.get('book4', {}).get('title', 'Not found')
print(title)  # Not found

Consulta il capitolo sui Dizionari Annidati per un trattamento più approfondito delle strutture dati a più livelli.

Scegliere il Metodo di Accesso Giusto

SituazioneApproccio consigliato
La chiave è garantita di esistered[key] — chiaro e veloce
La chiave potrebbe mancare, None va bened.get(key)
La chiave potrebbe mancare, serve un fallbackd.get(key, default)
Verificare prima di accedereif key in d: d[key]
Iterare su tutte le vocifor k, v in d.items()

Cosa Viene Dopo

Una volta che riesci a leggere i valori da un dizionario, i passi successivi naturali sono:

Esercitazione

Pratica
In Python, which principles are applied to access items from a list or a dictionary?
In Python, which principles are applied to access items from a list or a dictionary?
Was this page helpful?