logo

Sådan kontrolleres, om der findes en nøgle i en Python-ordbog

I Python er en ordbog et uordnet sæt dataværdier, der kan bruges til at administrere og gemme værdier som et kort. I modsætning til andre datatyper, som kun kan have en bestemt værdi som et element, kan ordbog indeholde et nøgleværdi-par. Ordbogen indeholder et nøgle-værdi-par for at gøre det mere effektivt. Polymorfi er ikke tilladt i ordbogsnøgler. En ordbog er bygget i Python ved at omslutte en række af indgange i krøllede klammeparenteser og adskille dem med et komma. Ordbogen gemmer par af værdier, hvoraf den ene er Nøglen og den anden er Nøgle:værdi parelementet.

I en ordbog kan værdier være af enhver datastruktur og kan endda replikeres, men nøgler kan ikke kopieres, som skal være uforanderlige.

Kontrol af en nøgle i ordbog

I Python er en ordbog faktisk en nyttig datastruktur, der gemmer nøgleværdi-par. At få værdien af ​​en specifik nøgle fra en ordbog er ofte påkrævet i programmering; dog er eksistensen af ​​en bestemt nøgle i ordbogen ikke altid garanteret. Derfor er det en god idé at dobbelttjekke, om en nøgle hører til ordbogen, før du henter dens værdi.

Brug af has_key()

Hvis en given nøgle findes i ordbogen, vil den har_nøgle() metode returnerer sand; ellers returnerer den falsk.

Python 3 har gjort dette forældet. Denne metode kan bruges, hvis vi kører på en ældre version end Python 3.

gennemstreget markdown

Kommandoen nedenfor kan bruges til at bekræfte Python-versionen 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') 

Produktion:

 --------------------------------------------------------------------------- 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' 

Da denne kode blev udført på Python 3, viser den en fejl.

hvis-i-erklæring

Denne metode kontrollerer, om der findes en bestemt nøgle inde i ordbogen ved hjælp af if-in-sætningen. Vi ansætter medlemsoperatøren i , på denne måde. Denne operator bruges til at bestemme, om en værdi tilhører en anden. Det giver dig 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') 

Produktion:

 Key exists in Animals 

Ser nu på den negative sag.

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') 

Produktion:

 There is no key '4' in Animals 

Ligeledes er ikke i operator kunne bruges til at se, om en nøgle i en ordbog ikke eksisterer. Husk dog på, at i betjeningen skelner mellem store og små bogstaver, så sørg enten for, at alle tasterne har samme store og små bogstaver, eller brug højere() eller nederste() 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') 

Produktion:

 Key exists in Animals 

Brug af get() metoden

Get()-metoden leverer værdien af ​​den relaterede nøgle i en ordbog. Hvis nøglen ikke er der, returnerer den enten Ingen eller en standardværdi (hvis en blev leveret). Vi kan sende en nøgle til denne metode og se, om den findes i den givne Python-ordbog.

Syntaks for funktionen get() er:

 dict_name.get(keyname, value) 

Her er dict name titlen på den ordbog, du skal bruge.

Parametre

    Nøglenavn-Værdiens nøglenavn, som du vil returnere.værdi-Hvis nøglen ikke findes, leveres denne værdi som en option.

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') 

Produktion:

 Key exists in Animals 

Tager nu en negativ sag,

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') 

Produktion:

 There is no key '5' in Animals 

Når du bruger denne metode, skal du huske på, at hvis vi har en nøgle med denne værdi Ingen, vil den ikke være nøjagtig. Hvis vi ikke har en, vil denne teknik være tilstrækkelig. Hvis vi vil bruge de værdier, der returneres af denne metode, kan vi gemme dem i en variabel.

Brug af nøgler()

Det nøgler() funktion og 'in'-operatoren kan bruges til at se, om der findes en nøgle i en ordbog. Det nøgler() metoden returnerer en liste over nøgler i ordbogen, og 'if, in'-sætningen kontrollerer, om den angivne nøgle er på listen. Den returnerer True, hvis nøglen findes; ellers returnerer den Falsk.

java værdi af enum

Input

 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') 

Produktion:

 Key exists in Animals 

Tjek for at se, om ordbogen har flere taster.

I et udsagn kan vi også kontrollere, om ordbogen indeholder flere nøgler. Vi kan bruge alle() funktion i kombination med listeforståelsen for at se, om ordbogen indeholder 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') 

Produktion:

Rajinikanth
 Not all the keys are there in Animals 

Undersøg listen over ordbøger for at se, om nøglen findes

En liste over ordbøger er en samling af ordbøger, der kan findes i en liste.

  • list_of_dictionary - en liste med tre ordbogsobjekter i den.
  • 'b' i tasterne for nøglerne i listen over ordbøger - producerer listen over nøgler i listen over ordbøger ved hjælp af listeforståelse. Se derefter på listen, om en er tilgængelig. Det vil returnere en liste med True for nøgler, der er 'b' og False for nøgler, der ikke er én.
  • any() - Verificerer True/False-listen, der leveres af listeforståelse. Nøglen 'b' er til stede i ordbogslisten, hvis den indeholder mindst én Sand. 'Hvis'-blokken udføres derefter, efter at den returnerer True. Ellers udføres 'andet'-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') 

Produktion:

 Key exists in list_of_dictionaries 

Tjek, om nøglen er i JSON-ordbogen

JSON står for 'Javascript Object Notation', og det er et nøgle-værdi-par, der gemmer værdier.

Det json.loads() metode kan bruges til at konstruere en ordbog ud fra en JSON-tekst.

Så, som det ses nedenfor, kan vi bruge 'if and in' til at se, om nøglen er til stede i JSON-ordbogen.

Input

 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') 

Produktion:

 Key is present in the JASON dictionary 

Konklusion

For at opsummere har vi lært at kontrollere, om nøglen er i ordbogen på flere måder. Vi har også lært, hvordan man anvender disse metoder til forskellige instanser for at se, om nøglen er i ordbogen. Vi har også set, hvordan hver mulighed tager forskellig tid.