logo

Jak sprawdzić, czy klucz istnieje w słowniku Pythona

W języku Python słownik to nieuporządkowany zbiór wartości danych, którego można używać do zarządzania wartościami i ich przechowywania, podobnie jak mapa. W przeciwieństwie do innych typów danych, które mogą przenosić tylko określoną wartość jako element, Słownik może przechowywać parę klucz-wartość. Słownik zawiera parę klucz-wartość, co zwiększa jego efektywność. Polimorfizm nie jest dozwolony w kluczach słownika. Słownik jest zbudowany w Pythonie poprzez umieszczenie kolejnych wpisów w nawiasach klamrowych i oddzielenie ich przecinkiem. Słownik przechowuje pary wartości, z których jedna to klucz, a druga to element pary klucz:wartość.

W słowniku wartości mogą mieć dowolną strukturę danych i można je nawet replikować, ale nie można kopiować kluczy, które muszą być niezmienne.

Sprawdzanie klucza w słowniku

W Pythonie słownik jest rzeczywiście użyteczną strukturą danych, która przechowuje pary klucz-wartość. W programowaniu często wymagane jest uzyskanie wartości określonego klucza ze słownika; jednakże istnienie określonego klucza w słowniku nie zawsze jest gwarantowane. W rezultacie dobrym pomysłem jest ponowne sprawdzenie, czy klucz należy do słownika przed pobraniem jego wartości.

Używanie funkcji has_key()

Jeśli dany klucz zostanie znaleziony w słowniku, zostanie wyświetlony komunikat ma_klucz() metoda zwraca wartość true; w przeciwnym razie zwraca wartość false.

W Pythonie 3 stało się to przestarzałe. Tej metody można użyć, jeśli pracujemy na wersji starszej niż Python 3.

Poniższego polecenia można użyć do potwierdzenia wersji Pythona w cmd.

Kod:

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

Wyjście:

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

Ponieważ ten kod został wykonany w Pythonie 3, wyświetla błąd.

Instrukcja if-in

Ta metoda sprawdza, czy w słowniku istnieje określony klucz, za pomocą instrukcji if-in. Zatrudniamy operatora członkowskiego W , w ten sposób. Operator ten służy do określenia, czy jedna wartość należy do drugiej. Daje wynik logiczny.

Kod:

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

Wyjście:

 Key exists in Animals 

Teraz spójrzmy na przypadek negatywny.

Kod:

wielowątkowość w Javie
 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') 

Wyjście:

 There is no key '4' in Animals 

Podobnie, nie w operatora można użyć do sprawdzenia, czy klucz w słowniku nie istnieje. Należy jednak pamiętać, że W W operacji rozróżniana jest wielkość liter, więc upewnij się, że wszystkie klawisze mają taką samą wielkość liter, lub użyj wyższy() Lub niżej() metody.

Kod:

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

Wyjście:

 Key exists in Animals 

Korzystanie z metody get().

Metoda get() dostarcza wartość powiązanego klucza w słowniku. Jeśli klucza tam nie ma, zwraca wartość None lub wartość domyślną (jeśli została podana). Możemy przekazać klucz do tej metody i sprawdzić, czy istnieje w danym słowniku Pythona.

Java ma następną

Składnia funkcji get() jest następująca:

 dict_name.get(keyname, value) 

W tym przypadku nazwa słownika to tytuł słownika, którego będziesz używać.

Parametry

    Nazwa klucza-Nazwa klucza wartości, którą chcesz zwrócić.wartość-Jeśli klucz nie istnieje, wartość ta jest dostarczana jako opcja.

Kod:

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

Wyjście:

 Key exists in Animals 

Teraz rozpatrując sprawę negatywną,

Kod:

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

Wyjście:

zmienna globalna js
 There is no key '5' in Animals 

Korzystając z tej metody, należy pamiętać, że jeśli mamy klucz o wartości Brak, nie będzie on dokładny. Jeśli go nie mamy, ta technika będzie wystarczająca. Jeśli chcemy wykorzystać wartości zwrócone tą metodą, możemy zapisać je w zmiennej.

Używanie klawiszy()

The Klucze() funkcji i operatora „in” można użyć do sprawdzenia, czy klucz istnieje w słowniku. The Klucze() Metoda zwraca listę kluczy w słowniku, a instrukcja „if, in” sprawdza, czy podany klucz znajduje się na liście. Zwraca True, jeśli klucz istnieje; w przeciwnym razie zwraca False.

Wejście

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

Wyjście:

 Key exists in Animals 

Sprawdź, czy słownik ma wiele kluczy.

W jednej instrukcji możemy także sprawdzić, czy słownik zawiera wiele kluczy. Możemy skorzystać z Wszystko() funkcja w połączeniu ze zrozumieniem listy, aby sprawdzić, czy słownik zawiera wiele lub wszystkie klucze.

Kod:

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

Wyjście:

rodzaje testów
 Not all the keys are there in Animals 

Sprawdź listę słowników, aby sprawdzić, czy klucz istnieje

Lista słowników to zbiór słowników, które można znaleźć na liście.

  • list_of_dictionary - lista zawierająca trzy obiekty słownika.
  • 'b' w kluczach dla kluczy na liście słownika - utworzenie listy kluczy w ramach listy słowników przy użyciu rozumienia list. Następnie na liście sprawdź, czy jest on dostępny. Zwróci listę z True dla kluczy, które są „b” i False dla kluczy, które nie są jednym.
  • any() — weryfikuje listę Prawda/Fałsz dostarczoną przez funkcję rozumienia list. Klucz „b” występuje na liście słowników, jeśli zawiera co najmniej jedną wartość True. Blok „if” jest następnie wykonywany po zwróceniu wartości True. W przeciwnym razie wykonywany jest blok „else”.

Kod:

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

Wyjście:

 Key exists in list_of_dictionaries 

Sprawdź, czy klucz znajduje się w słowniku JSON

JSON oznacza „Javascript Object Notation” i jest to para klucz-wartość, która zapisuje wartości.

The json.loads() metody można użyć do skonstruowania słownika na podstawie tekstu JSON.

Następnie, jak widać poniżej, możemy użyć „if” i „in”, aby sprawdzić, czy klucz występuje w słowniku JSON.

Wejście

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

Wyjście:

 Key is present in the JASON dictionary 

Wniosek

Reasumując, nauczyliśmy się na kilka sposobów sprawdzać, czy klucz znajduje się w słowniku. Dowiedzieliśmy się również, jak zastosować te metody do różnych instancji, aby sprawdzić, czy klucz znajduje się w słowniku. Widzieliśmy również, że każda opcja zajmuje inną ilość czasu.