logo

Hur man kontrollerar om en nyckel finns i en Python-ordbok

I Python är en ordbok en oordnad uppsättning datavärden som kan användas för att hantera och lagra värden som en karta. Till skillnad från andra datatyper, som bara kan ha ett specifikt värde som en artikel, kan Dictionary innehålla ett nyckel-värdepar. Ordboken innehåller ett nyckel-värdepar för att göra det mer effektivt. Polymorfism är inte tillåten i ordboksnycklar. En ordbok byggs i Python genom att omsluta en rad poster i hängslen och separera dem med ett kommatecken. Ordboken lagrar par av värden, varav ett är nyckeln och det andra är nyckel:värde parelementet.

I en ordbok kan värden ha vilken datastruktur som helst och kan till och med replikeras, men nycklar kan inte kopieras som måste vara oföränderliga.

Kontrollera en nyckel i ordboken

I Python är en ordbok verkligen en användbar datastruktur som lagrar nyckel-värdepar. Att hämta värdet av en specifik nyckel från en ordbok krävs ofta i programmering; dock är det inte alltid garanterat att det finns en viss nyckel i ordboken. Som ett resultat är det en bra idé att dubbelkolla om en nyckel hör till ordboken innan du hämtar dess värde.

Använder has_key()

Om en given nyckel finns i ordboken, has_key() metod returnerar true; annars returnerar det falskt.

Python 3 har gjort detta utfasadt. Denna metod kan användas om vi kör på en äldre version än Python 3.

Kommandot nedan kan användas för att bekräfta Python-versionen i cmd.

Koda:

 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' 

Eftersom den här koden kördes på Python 3 visar den ett fel.

bash om annat

om-i uttalande

Denna metod kontrollerar om en viss nyckel finns i ordboken med hjälp av if-in-satsen. Vi anlitar medlemsoperatören i , på detta sätt. Denna operator används för att avgöra om ett värde tillhör ett annat. Det ger dig ett booleskt resultat.

Koda:

 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 

Nu tittar vi på det negativa fallet.

Koda:

 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 

Likaså inte i operatorn kan användas för att se om en nyckel i en ordbok inte finns. Kom dock ihåg att i operationen är skiftlägeskänslig, så antingen se till att alla nycklar har samma skiftläge eller använd högre() eller lägre() metoder.

Koda:

 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:

string.format
 Key exists in Animals 

Använder metoden get()

Metoden get() levererar värdet av den relaterade nyckeln i en ordbok. Om nyckeln inte finns där returnerar den antingen None eller ett standardvärde (om ett sådant medföljde). Vi kan skicka en nyckel till denna metod och se om den finns i den givna Python-ordboken.

Syntaxen för funktionen get() är:

 dict_name.get(keyname, value) 

Här är dict name titeln på ordboken du kommer att använda.

Parametrar

    Nyckelnamn-Värdets nyckelnamn som du vill returnera.värde-Om nyckeln inte finns tillhandahålls detta värde som tillval.

Koda:

 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 

Tar nu ett negativt fall,

Koda:

 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 använder den här metoden, kom ihåg att om vi har en nyckel med det värdet None, kommer den inte att vara korrekt. Om vi ​​inte har en så räcker den här tekniken. Om vi ​​vill använda värdena som returneras av denna metod kan vi spara dem i en variabel.

tcp vs udp

Använda nycklar()

De nycklar() funktion och operatorn 'in' kan användas för att se om det finns en nyckel i en ordbok. De nycklar() metod returnerar en lista med nycklar i ordboken, och 'if, in'-satsen kontrollerar om den angivna nyckeln finns i listan. Den returnerar True om nyckeln finns; annars returneras False.

Inmatning

 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 

Kontrollera om ordboken har flera nycklar.

I ett påstående kan vi också kontrollera om ordboken innehåller flera nycklar. Vi kan använda Allt() funktion i kombination med listförståelsen för att se om ordboken innehåller många eller alla nycklar.

Koda:

 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:

 Not all the keys are there in Animals 

Granska listan över ordböcker för att se om nyckeln finns

En lista med ordböcker är en samling ordböcker som finns i en lista.

  • list_of_dictionary - en lista med tre ordboksobjekt i.
  • 'b' i nycklar för nycklarna i listan över ordböcker - producerar listan med nycklar i listan över ordböcker med hjälp av listförståelse. Se sedan på listan om en finns tillgänglig. Det kommer att returnera en lista med True för nycklar som är 'b' och False för nycklar som inte är en.
  • any() - Verifierar den sanna/falska listan som tillhandahålls av listförståelse. Nyckeln 'b' finns i ordbokslistan om den innehåller minst en True. 'Om'-blocket exekveras sedan efter att det returnerar True. Annars körs 'annat'-blocket.

Koda:

 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:

vad är 10 av 100
 Key exists in list_of_dictionaries 

Kontrollera om nyckeln finns i JSON Dictionary

JSON står för 'Javascript Object Notation', och det är ett nyckel-värdepar som sparar värden.

De json.loads() metod kan användas för att konstruera en ordbok från en JSON-text.

Sedan, som visas nedan, kan vi använda 'om och i' för att se om nyckeln finns i JSON-ordboken.

Inmatning

 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 

Slutsats

För att sammanfatta har vi lärt oss hur man kontrollerar om nyckeln finns i ordboken på flera sätt. Vi har också lärt oss hur man tillämpar dessa metoder på olika instanser för att se om nyckeln finns i ordboken. Vi har också sett hur varje alternativ tar olika lång tid.