V Pythonu je slovník neuspořádaná sada datových hodnot, které lze použít ke správě a ukládání hodnot jako mapa. Na rozdíl od jiných datových typů, které mohou nést pouze určitou hodnotu jako položku, může Dictionary obsahovat pár klíč-hodnota. Slovník obsahuje pár klíč–hodnota, aby byl efektivnější. V klíčích slovníku není povolen polymorfismus. Slovník se vytváří v Pythonu uzavřením sledu položek do složených závorek a jejich oddělením čárkou. Slovník ukládá páry hodnot, z nichž jedna je Klíč a druhá je prvek dvojice Klíč:hodnota.
Ve slovníku mohou mít hodnoty libovolnou datovou strukturu a mohou být dokonce replikovány, ale nelze kopírovat klíče, které musí být neměnné.
Kontrola klíče ve slovníku
V Pythonu je slovník skutečně užitečná datová struktura, která ukládá páry klíč-hodnota. Získání hodnoty konkrétního klíče ze slovníku je často vyžadováno při programování; existence konkrétního klíče ve slovníku však není vždy zaručena. V důsledku toho je dobré před načtením jeho hodnoty dvakrát zkontrolovat, zda klíč patří do slovníku.
Použití has_key()
Pokud je daný klíč nalezen ve slovníku, has_key() metoda vrací true; jinak vrátí false.
smtp internetový protokol
Python 3 učinil toto zastaralé. Tuto metodu lze použít, pokud běžíme na starší verzi než Python 3.
Níže uvedený příkaz lze použít k potvrzení verze Pythonu v cmd.
Kód:
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ýstup:
--------------------------------------------------------------------------- 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'
Protože byl tento kód spuštěn v Pythonu 3, zobrazuje chybu.
if-in prohlášení
Tato metoda zkontroluje, zda konkrétní klíč existuje uvnitř slovníku pomocí příkazu if-in. Zaměstnáváme provozovatele členství v , tímto způsobem. Tento operátor se používá k určení, zda jedna hodnota patří jiné. Dává vám booleovský výsledek.
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ýstup:
Key exists in Animals
Nyní se podíváme na negativní případ.
parafrázovat jako rudyard kipling
Kód:
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ýstup:
There is no key '4' in Animals
Stejně tak ne v operátor by mohl být použit ke zjištění, zda klíč ve slovníku neexistuje. Mějte však na paměti, že v operace rozlišuje velká a malá písmena, takže se buď ujistěte, že všechny klávesy jsou stejná, nebo použijte vyšší() nebo dolní() metody.
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ýstup:
Key exists in Animals
Pomocí metody get().
Metoda get() dodává hodnotu souvisejícího klíče ve slovníku. Pokud tam klíč není, vrátí buď None, nebo výchozí hodnotu (pokud byla zadána). Této metodě můžeme předat klíč a zjistit, zda v daném slovníku Pythonu existuje.
Syntaxe funkce get() je:
dict_name.get(keyname, value)
Zde je dict name název slovníku, který budete používat.
Parametry
Kód:
počítat odlišné sql
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ýstup:
Key exists in Animals
Nyní vezmeme negativní pří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ýstup:
There is no key '5' in Animals
Při použití této metody mějte na paměti, že pokud máme klíč s touto hodnotou None, nebude to přesné. Pokud žádný nemáme, postačí tato technika. Pokud chceme použít hodnoty vrácené touto metodou, můžeme je uložit do proměnné.
Použití kláves ()
The klíče() a operátor 'in' lze použít ke zjištění, zda klíč ve slovníku existuje. The klíče() metoda vrací seznam klíčů ve slovníku a příkaz 'if, in' kontroluje, zda je poskytnutý klíč v seznamu. Pokud klíč existuje, vrátí True; jinak vrátí 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ýstup:
Key exists in Animals
Zkontrolujte, zda má slovník více kláves.
V jednom příkazu můžeme také zkontrolovat, zda slovník obsahuje více klíčů. Můžeme použít Všechno() funkce v kombinaci s porozuměním seznamu, abyste zjistili, zda slovník obsahuje mnoho nebo všechny klíče.
chromový adresní řádek
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ýstup:
Not all the keys are there in Animals
Prohlédněte si seznam slovníků a zjistěte, zda klíč existuje
Seznam slovníků je sbírka slovníků, které lze nalézt v seznamu.
- list_of_dictionary - seznam se třemi objekty slovníku.
- 'b' v klíčích pro klíče v seznamu slovníku - vytvoření seznamu klíčů v seznamu slovníků pomocí porozumění seznamu. Poté v seznamu zkontrolujte, zda je k dispozici. Vrátí seznam s True pro klíče, které jsou 'b' a False pro klíče, které nejsou jedny.
- any() - Ověřuje pravdivý/nepravdivý seznam poskytnutý porozuměním seznamu. Klíč 'b' je přítomen v seznamu slovníků, pokud obsahuje alespoň jednu hodnotu True. Blok 'if' se provede poté, co vrátí hodnotu True. Jinak se provede 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ýstup:
Key exists in list_of_dictionaries
Zkontrolujte, zda je klíč ve slovníku JSON
JSON je zkratka pro 'Javascript Object Notation' a je to pár klíč-hodnota, který ukládá hodnoty.
The json.loads() metodu lze použít k vytvoření slovníku z textu JSON.
Poté, jak je vidět níže, můžeme použít 'if a in', abychom zjistili, zda je klíč přítomen ve 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ýstup:
Key is present in the JASON dictionary
Závěr
Abychom to zrekapitulovali, naučili jsme se několika způsoby zkontrolovat, zda je klíč ve slovníku. Také jsme se naučili, jak tyto metody aplikovat na různé instance, abychom zjistili, zda je klíč ve slovníku. Také jsme viděli, jak každá možnost trvá jinak dlouho.