Controlla se un valore è in un dizionario in Python

Rayven Esplanada 30 gennaio 2023
  1. Usa get() e la chiave per verificare se il valore esiste in un dizionario
  2. Usa values() per verificare se il valore specificato esiste in un dizionario
  3. Controlla se il valore esiste in un dizionario se il valore è una lista
Controlla se un valore è in un dizionario in Python

Questo tutorial mostra come controllare un valore se esiste in un dizionario Python. Qui tratteremo argomenti pertinenti, come la ricerca di un valore fornito da una chiave, la ricerca di un valore specifico e la ricerca di un valore che è un oggetto o una raccolta.

Per iniziare, dovresti stampare True se il valore esiste nel dizionario; in caso contrario, stampare False.

Usa get() e la chiave per verificare se il valore esiste in un dizionario

I dizionari in Python hanno una funzione incorporata key(), che restituisce il valore della chiave data. Allo stesso tempo, restituirebbe None se non esiste. È possibile utilizzare questa funzione come condizione per determinare se un valore esiste o meno all’interno di un dizionario.

Dichiariamo prima un semplice dizionario con chiavi int e valori stringa.

simpDict = {1: "Ant", 2: "Bear", 3: "Cat", 4: "Dog", 5: "Elephant"}

Se vuoi cercare il valore usando la sua coppia di chiavi, allora la funzione key() è la strada da percorrere. Ad esempio, si desidera cercare qualsiasi valore con il 6 come chiave; segui il codice qui sotto.

if simpDict.key(6) != None:
    print("True")
else:
    print("False")

Poiché la funzione simpDict non ha il tasto 6, questo blocco di codice restituirà False.

Usa values() per verificare se il valore specificato esiste in un dizionario

A differenza della situazione nella ricerca di un valore specifico, la ricerca di una chiave all’interno di un dizionario è molto semplice; devi solo usare la parola chiave in e la chiave che stai cercando nel dizionario.

print(3 in simpDict)

Questo produrrà True poiché la chiave 3 esiste. Se sostituiamo il numero con una chiave inesistente, verrà restituito False.

D’altra parte, puoi usare la funzione values() se vuoi cercare un valore specifico nel dizionario. Il comando values() restituirà una lista di tutti i valori all’interno di un dizionario. Usando values(), puoi utilizzare la parola chiave in per il dizionario e il valore specificato. Supponiamo che tu voglia sapere se il valore Elephant è nel dizionario, esegui il seguente codice:

print("Elephant" in simpDict.values())

Questa riga produrrà True poiché la parola elefante esiste in simpDict sul tasto 5.

In Python 2.X, ci sono anche altre due funzioni simili a values(), sono itervalues() e viewvalues(); queste funzioni sono state deprecate nelle versioni di Python 3.X.

I comandi itervalues() e viewvalues() eseguiranno lo stesso compito del comando values(); tuttavia, implementazioni diverse, sebbene molto trascurabili, influiscono notevolmente sul runtime.

print("Elephant" in simpDict.itervalues())
print("Elephant" in simpDict.viewvalues())

Entrambi restituiranno lo stesso output della funzione values(). È importante notare che la ridondanza è probabilmente il motivo principale per cui queste funzioni sono state deprecate dalle versioni più recenti di Python.

Ora, cosa succede se i valori di un dizionario sono strutture di dati come una lista o un oggetto? Scopriamolo.

Controlla se il valore esiste in un dizionario se il valore è una lista

listDict = {1: ["a", "b"], 2: ["b", "c"], 3: ["c", "d"], 4: ["d", "e"]}

Ora abbiamo un dizionario con chiavi int e una lista di caratteri come valori.

Supponiamo di voler cercare se la lista ['c', 'd'] esiste nel dizionario.

print(["c", "d"] in listDict.values())

L’output risultante sarebbe True; ciò conferma che anche il confronto delle raccolte mediante l’iterazione del dizionario funziona.

Ma cosa succede se si desidera verificare se nel dizionario esiste un valore all’interno di un valore di lista? Per risolvere questo problema, è sufficiente scorrere i valori e utilizzare la parola chiave in nell’lista, invece che nel dizionario.

Ad esempio, si desidera verificare se il carattere 'e' esiste o meno all’interno dei valori in questo lista. Ecco il codice da eseguire per questo:

tof = False
for value in listDict.values():
    if "e" in value:
        tof = True
        break
print(tof)

L’output stamperà True poiché 'e' esiste nel dizionario.

In sintesi, usa la funzione values() per scorrere i valori e confrontare se il valore che stai cercando esiste all’interno dell’lista di valori. Questo aiuta quando vuoi controllare se un valore specificato esiste in un dizionario.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Articolo correlato - Python Dictionary