
Questo articolo descrive come verificare se una chiave, un valore o una coppia chiave-valore esiste in un dizionario (dict) in Python.
- Controlla se esiste una chiave in un dizionario:
in operator
- Controlla se esiste un valore in un dizionario:
in operator, values()
- Controlla se esiste una coppia chiave-valore in un dizionario:
in operator, items()
I metodi values() e items() sono usati anche per iterare un dizionario con ciclo for. Vedi il seguente articolo.
Controlla se esiste una chiave in un dizionario:in operator
L’uso dell’operatore in per un oggetto dizionario stesso produce se esiste una chiave, cioè se un dizionario ha/contiene una chiave. Use not in per verificare se una chiave non esiste in un dizionario.
d = {'key1': 'val1', 'key2': 'val2', 'key3': 'val3'}
print('key1' in d)
# True
print('val1' in d)
# False
print('key4' not in d)
# True
Lo stesso vale se si utilizza il metodo keys() invece dell’oggetto dizionario stesso. Nel caso dell’esempio precedente, lo stesso risultato viene restituito da xxx in d.keys().
Il metodo has_key() è stato fornito in Python 2, ma è stato rimosso in Python 3.
Per ottenere il valore della chiave, utilizzare dict[key].
dict[key] genera un errore quando la chiave non esiste, ma il metodo get() richiede un valore specificato (il valore predefinito è None) se la chiave non esiste.
# print(d['key4'])
# KeyError: 'key4'
print(d.get('key4'))
# None
Puoi anche aggiungere un nuovo elemento con dict[key] = new_value. Il valore viene sovrascritto per una chiave esistente. Se si desidera un elemento con un nuovo valore solo per una nuova chiave senza modificare il valore per una chiave esistente, utilizzare il metodo setdefault(). Vedi il seguente articolo.
Controlla se esiste un valore in un dizionario:in operator, values()
Per verificare se esiste un valore in un dizionario, cioè se un dizionario ha/contiene un valore, utilizzare l’operatore in e il metodo values(). Usa not in per verificare se un valore non esiste in un dizionario.
print('val1' in d.values())
# True
print('val4' not in d.values())
# True
Vedere l’articolo seguente per come ottenere la chiave dal valore.
Controlla se esiste una coppia chiave-valore in un dizionario:in operator, items()
Per verificare se esiste una coppia chiave-valore in un dizionario, cioè se un dizionario ha/contiene una coppia, utilizzare l’operatore in e il metodo items(). Specificare una tupla (chiave, valore). Use not in per verificare se una coppia non esiste in un dizionario.
print(('key1', 'val1') in d.items())
# True
print(('key1', 'val2') in d.items())
# False
print(('key1', 'val2') not in d.items())
# True