V Pythone je slovník neusporiadaná množina údajových hodnôt, ktoré možno použiť na správu a ukladanie hodnôt ako mapa. Na rozdiel od iných typov údajov, ktoré môžu niesť iba konkrétnu hodnotu ako položku, môže Dictionary obsahovať pár kľúč – hodnota. Slovník obsahuje pár kľúč – hodnota, aby bol efektívnejší. V kľúčoch slovníka nie je povolený polymorfizmus. Slovník je vytvorený v Pythone uzavretím postupnosti záznamov do zložených zátvoriek a ich oddelením čiarkou. Slovník ukladá páry hodnôt, z ktorých jedna je kľúč a druhá je prvok páru kľúč:hodnota.
V slovníku môžu mať hodnoty akúkoľvek dátovú štruktúru a môžu byť dokonca replikované, ale nemožno kopírovať kľúče, ktoré musia byť nemenné.
Kontrola kľúča v slovníku
V Pythone je slovník skutočne užitočná dátová štruktúra, ktorá ukladá páry kľúč-hodnota. Pri programovaní sa často vyžaduje získanie hodnoty konkrétneho kľúča zo slovníka; existencia konkrétneho kľúča v slovníku však nie je vždy zaručená. Preto je dobré pred načítaním jeho hodnoty ešte raz skontrolovať, či kľúč patrí do slovníka.
Použitie has_key()
Ak sa daný kľúč nájde v slovníku, has_key() metóda vracia true; inak vráti false.
Python 3 toto zastaral. Túto metódu je možné použiť, ak používame staršiu verziu ako Python 3.
Nasledujúci príkaz možno použiť na potvrdenie verzie Pythonu v cmd.
kód:
java trieda matematiky
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')
Výkon:
--------------------------------------------------------------------------- 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'
Keďže tento kód bol spustený v Pythone 3, zobrazuje chybu.
ak-in vyhlásenie
Táto metóda kontroluje, či konkrétny kľúč existuje vo vnútri slovníka pomocou príkazu if-in. Zamestnávame prevádzkovateľa členstva v , týmto spôsobom. Tento operátor sa používa na určenie, či jedna hodnota patrí inej. Poskytuje vám boolovský výsledok.
kód:
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')
Výkon:
Key exists in Animals
Teraz sa pozrime na negatívny prípad.
kód:
in.next java
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')
Výkon:
There is no key '4' in Animals
Rovnako tak, nie v Operátor možno použiť na zistenie, či kľúč v slovníku neexistuje. Majte však na pamäti, že v pri operácii sa rozlišujú malé a veľké písmená, takže buď skontrolujte, či sú všetky klávesy rovnaké, alebo použite vyššie () alebo nižšia () metódy.
kód:
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')
Výkon:
Key exists in Animals
Pomocou metódy get().
Metóda get() dodáva hodnotu súvisiaceho kľúča v slovníku. Ak tam kľúč nie je, vráti buď None, alebo predvolenú hodnotu (ak bola zadaná). Tejto metóde môžeme odovzdať kľúč a zistiť, či existuje v danom pythonskom slovníku.
java enums
Syntax funkcie get() je:
dict_name.get(keyname, value)
Dict name je názov slovníka, ktorý budete používať.
Parametre
kód:
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')
Výkon:
Key exists in Animals
Teraz vezmeme negatívny prípad,
kód:
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')
Výkon:
ako čítať súbor json
There is no key '5' in Animals
Pri používaní tejto metódy majte na pamäti, že ak máme kľúč s touto hodnotou None, nebude to presné. Ak taký nemáme, postačí aj táto technika. Ak chceme použiť hodnoty vrátené touto metódou, môžeme ich uložiť do premennej.
Používanie klávesov ()
The kľúče () a operátor 'in' možno použiť na zistenie, či kľúč v slovníku existuje. The kľúče () metóda vráti zoznam kľúčov v slovníku a príkaz 'if, in' skontroluje, či je poskytnutý kľúč v zozname. Ak kľúč existuje, vráti hodnotu True; v opačnom prípade vráti hodnotu False.
Vstup
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')
Výkon:
Key exists in Animals
Skontrolujte, či má slovník viacero kláves.
V jednom výpise môžeme tiež skontrolovať, či slovník obsahuje viacero kľúčov. Môžeme použiť všetko() v kombinácii s porozumením zoznamu, aby ste zistili, či slovník obsahuje veľa alebo všetky klávesy.
kód:
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')
Výkon:
java je inštancia
Not all the keys are there in Animals
Preskúmajte zoznam slovníkov a zistite, či kľúč existuje
Zoznam slovníkov je zbierka slovníkov, ktoré možno nájsť v zozname.
- list_of_dictionary - zoznam s tromi objektmi slovníka.
- 'b' v kľúčoch pre kľúče v zozname slovníka - vytvorenie zoznamu kľúčov v zozname slovníkov pomocou porozumenia zoznamu. Potom v zozname skontrolujte, či je nejaký dostupný. Vráti zoznam s True pre kľúče, ktoré sú 'b' a False pre kľúče, ktoré nie sú jedným.
- any() - Overí pravdivý/nepravdivý zoznam poskytnutý porozumením zoznamu. Kľúč 'b' je prítomný v zozname slovníkov, ak obsahuje aspoň jeden True. Blok 'if' sa potom vykoná, keď vráti hodnotu True. V opačnom prípade sa vykoná blok „else“.
kód:
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')
Výkon:
Key exists in list_of_dictionaries
Skontrolujte, či sa kľúč nachádza v slovníku JSON
JSON je skratka pre 'Javascript Object Notation' a je to pár kľúč-hodnota, ktorý ukladá hodnoty.
The json.loads() metódu možno použiť na zostavenie slovníka z textu JSON.
Potom, ako je uvedené nižšie, môžeme použiť „if a in“, aby sme zistili, či sa kľúč nachádza v slovníku JSON.
Vstup
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')
Výkon:
Key is present in the JASON dictionary
Záver
Aby sme to zhrnuli, naučili sme sa niekoľkými spôsobmi skontrolovať, či sa kľúč nachádza v slovníku. Tiež sme sa naučili, ako použiť tieto metódy na rôzne prípady, aby sme zistili, či je kľúč v slovníku. Videli sme tiež, ako každá možnosť trvá iný čas.