logo

Hvordan sjekke om en nøkkel eksisterer i en Python-ordbok

I Python er en ordbok et uordnet sett med dataverdier som kan brukes til å administrere og lagre verdier som et kart. I motsetning til andre datatyper, som bare kan ha en spesifikk verdi som et element, kan Dictionary inneholde et nøkkelverdi-par. Ordboken inkluderer et nøkkelverdi-par for å gjøre den mer effektiv. Polymorfisme er ikke tillatt i ordboknøkler. En ordbok er bygget i Python ved å omslutte en rekke oppføringer i krøllete klammeparenteser og skille dem med et komma. Ordboken lagrer par verdier, hvorav den ene er nøkkelen og den andre er nøkkel:verdi-parelementet.

I en ordbok kan verdier ha en hvilken som helst datastruktur og kan til og med replikeres, men nøkler kan ikke kopieres som må være uforanderlige.

Sjekke en nøkkel i ordboken

I Python er en ordbok virkelig en nyttig datastruktur som lagrer nøkkelverdi-par. Å hente verdien av en bestemt nøkkel fra en ordbok er ofte nødvendig i programmering; eksistensen av en bestemt nøkkel i ordboken er imidlertid ikke alltid garantert. Som et resultat er det en god idé å dobbeltsjekke om en nøkkel tilhører ordboken før du henter verdien.

Bruke has_key()

Hvis en gitt nøkkel finnes i ordboken, vil har_nøkkel() metoden returnerer true; ellers returnerer den falsk.

Python 3 har gjort dette avviklet. Denne metoden kan brukes hvis vi kjører på en eldre versjon enn Python 3.

Sridevi

Kommandoen nedenfor kan brukes til å bekrefte Python-versjonen i cmd.

Kode:

 import sys print(sys.version) Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.has_key(key_to_check_for): print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals') 

Produksjon:

 --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Input In [37], in () 1 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} 2 key_to_check_for = '2' ----> 3 if Animals.has_key(key_to_check_for): 4 print('Key exists in Animals') 5 else: AttributeError: 'dict' object has no attribute 'has_key' 

Siden denne koden ble utført på Python 3, viser den en feil.

hvis-i-erklæring

Denne metoden sjekker om en bestemt nøkkel finnes i ordboken ved å bruke if-in-setningen. Vi ansetter medlemsoperatøren i , på denne måten. Denne operatoren brukes til å bestemme om en verdi tilhører en annen. Det gir deg et boolsk resultat.

Kode:

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} Key = '2' if '2' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals') 

Produksjon:

 Key exists in Animals 

Ser nå på den negative saken.

Kode:

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} if '4' in Animals: print('Key exists in Animals') else: print(f'There is no key {key} in Animals') 

Produksjon:

 There is no key '4' in Animals 

På samme måte ikke i operatør kan brukes til å se om en nøkkel i en ordbok ikke eksisterer. Vær imidlertid oppmerksom på at i operasjonen skiller mellom store og små bokstaver, så sørg enten for at alle tastene har samme store og små bokstaver eller bruk høyere() eller Nedre() metoder.

Kode:

 Animals = {'one': 'Cat', 'two':'Rat', 'three':'Bat'} setting_case = set(key.upper() for key in Animals) key_to_check_for = 'two' if key_to_check_for.upper() in setting_case: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals') 

Produksjon:

 Key exists in Animals 

Bruke get()-metoden

Get()-metoden leverer verdien av den relaterte nøkkelen i en ordbok. Hvis nøkkelen ikke er der, returnerer den enten Ingen eller en standardverdi (hvis en ble levert). Vi kan sende en nøkkel til denne metoden og se om den finnes i den gitte Python-ordboken.

Syntaksen til get()-funksjonen er:

 dict_name.get(keyname, value) 

Her er diktnavn tittelen på ordboken du skal bruke.

Parametere

    Nøkkelnavn-Verdiens nøkkelnavn som du vil returnere.verdi-Hvis nøkkelen ikke finnes, leveres denne verdien som et alternativ.

Kode:

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '2' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals') 

Produksjon:

 Key exists in Animals 

Tar nå en negativ sak,

Kode:

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key_to_check_for = '5' if Animals.get(key_to_check_for) is not None: print('Key exists in Animals') else: print(f'There is no key {key_to_check_for} in Animals') 

Produksjon:

 There is no key '5' in Animals 

Når du bruker denne metoden, vær så snill å huske på at hvis vi har en nøkkel med den verdien Ingen, vil den ikke være nøyaktig. Hvis vi ikke har en, vil denne teknikken være tilstrekkelig. Hvis vi ønsker å bruke verdiene som returneres av denne metoden, kan vi lagre dem i en variabel.

Bruke nøkler()

De nøkler() funksjonen og 'in'-operatoren kan brukes til å se om det finnes en nøkkel i en ordbok. De nøkler() metoden returnerer en liste over nøkler i ordboken, og 'if, in'-setningen sjekker om den oppgitte nøkkelen er i listen. Den returnerer True hvis nøkkelen eksisterer; ellers returnerer den False.

java-verdien av enum

Inndata

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if key in Animals.keys(): print('Key exists in Animals') else: print(f'There is no key {key} in Animals') 

Produksjon:

 Key exists in Animals 

Sjekk om ordboken har flere taster.

I ett utsagn kan vi også sjekke om ordboken inneholder flere nøkler. Vi kan bruke alle() funksjon i kombinasjon med listeforståelsen for å se om ordboken inneholder mange eller alle taster.

Kode:

 Animals = {'1': 'Cat', '2':'Rat', '3':'Bat'} key='2' if all(key in Animals for key in ('1','5')): print('All keys exists in Animals') else: print('Not all the keys are there in Animals') 

Produksjon:

np.hvor
 Not all the keys are there in Animals 

Undersøk listen over ordbøker for å se om nøkkelen eksisterer

En liste over ordbøker er en samling ordbøker som finnes i en liste.

  • list_of_dictionary - en liste med tre ordbokobjekter i den.
  • 'b' i nøkler for nøklene i listen over ordbok - produserer listen over nøkler i listen over ordbøker ved å bruke listeforståelse. Deretter, på listen, se om en er tilgjengelig. Den vil returnere en liste med True for nøkler som er 'b' og False for nøkler som ikke er én.
  • any() - Verifiserer sann/falsk-listen gitt av listeforståelse. Nøkkelen 'b' er tilstede i ordboklisten hvis den inneholder minst én Sann. 'Hvis'-blokken blir deretter utført etter at den returnerer True. Ellers utføres 'else'-blokken.

Kode:

 list_of_dictionaries = [{'a': 'A'}, {'b': 'B'}, {'c': 'C'}] if any('b' in keys for keys in list_of_dictionary): print('key exists in list_of_dictionaries') else: print('key does not exists in list_of_dictionaries') 

Produksjon:

 Key exists in list_of_dictionaries 

Sjekk om nøkkelen er i JSON Dictionary

JSON står for 'Javascript Object Notation', og det er et nøkkelverdi-par som lagrer verdier.

De json.loads() metode kan brukes til å konstruere en ordbok fra en JSON-tekst.

Deretter, som vist nedenfor, kan vi bruke 'hvis og inn' for å se om nøkkelen finnes i JSON-ordboken.

Inndata

 import json json_str = '''{'a': 'A', 'b': 'B', 'c': 'C'}''' json_dictionary = json.loads(json_str) if 'c' in json_dictionary: print('Key is present in the JSON dictionary') else: print('Key is not present in JSON dictionary') 

Produksjon:

 Key is present in the JASON dictionary 

Konklusjon

For å oppsummere, har vi lært hvordan du sjekker om nøkkelen er i ordboken på flere måter. Vi har også lært hvordan vi kan bruke disse metodene på ulike instanser for å se om nøkkelen er i ordboken. Vi har også sett hvordan hvert alternativ tar ulik tid.