logo

Как да проверите дали съществува ключ в речник на Python

В Python речникът е неподреден набор от стойности на данни, които могат да се използват за управление и съхраняване на стойности като карта. За разлика от други типове данни, които могат да носят само конкретна стойност като елемент, речникът може да съдържа двойка ключ-стойност. Речникът включва двойка ключ-стойност, за да бъде по-ефективен. Полиморфизмът не е разрешен в ключовете на речника. Речникът е изграден в Python чрез ограждане на последователност от записи във фигурни скоби и разделянето им със запетая. Речникът съхранява двойки стойности, едната от които е ключът, а другата е елементът на двойката ключ:стойност.

Пийт Дейвидсън националност

В речника стойностите могат да бъдат от всякаква структура от данни и дори могат да бъдат репликирани, но ключовете не могат да бъдат копирани, което трябва да бъде неизменно.

Проверка на ключ в речника

В Python речникът наистина е полезна структура от данни, която съхранява двойки ключ-стойност. Получаването на стойността на конкретен ключ от речник често се изисква при програмирането; съществуването на конкретен ключ в речника обаче не винаги е гарантирано. В резултат на това е добра идея да проверите отново дали даден ключ принадлежи към речника, преди да извлечете стойността му.

Използване на has_key()

Ако даден ключ бъде намерен в речника, has_key() методът връща true; в противен случай връща false.

Python 3 направи това отхвърлено. Този метод може да се използва, ако работим на по-стара версия от Python 3.

Командата по-долу може да се използва за потвърждаване на версията на Python в cmd.

Код:

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

Изход:

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

Тъй като този код е изпълнен на Python 3, той показва грешка.

if-in Statement

Този метод проверява дали конкретен ключ съществува в речника с помощта на оператора if-in. Ние наемаме оператора за членство в , по този начин. Този оператор се използва за определяне дали една стойност принадлежи на друга. Дава ви булев резултат.

Код:

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

Изход:

 Key exists in Animals 

Сега, гледайки отрицателния случай.

Код:

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

Изход:

 There is no key '4' in Animals 

По същия начин, Не в може да се използва, за да се види дали ключ в речник не съществува. Имайте предвид обаче, че в операцията е чувствителна към главни и малки букви, така че или се уверете, че всички клавиши са с еднакъв регистър, или използвайте по-висок() или нисък() методи.

Код:

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

Изход:

 Key exists in Animals 

Използване на метода get().

Методът get() доставя стойността на свързания ключ в речник. Ако ключът не е там, той или връща None, или стойност по подразбиране (ако е предоставена). Можем да предадем ключ на този метод и да видим дали съществува в дадения речник на Python.

Синтаксисът на функцията get() е:

 dict_name.get(keyname, value) 

Тук dict name е заглавието на речника, който ще използвате.

Параметри

    Keyname-Ключовото име на стойността, което искате да върнете.стойност-Ако ключът не съществува, тази стойност се предоставя като опция.

Код:

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

Изход:

 Key exists in Animals 

Сега като вземем отрицателен случай,

не е нула в js

Код:

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

Изход:

 There is no key '5' in Animals 

Когато използвате този метод, моля, имайте предвид, че ако имаме ключ с тази стойност None, той няма да е точен. Ако нямаме такава, тази техника ще е достатъчна. Ако искаме да използваме стойностите, върнати от този метод, можем да ги запазим в променлива.

Използване на Keys()

The ключове() функция и операторът 'in' може да се използва, за да се види дали съществува ключ в речник. The ключове() методът връща списък с ключове в речника, а операторът 'if, in' проверява дали предоставеният ключ е в списъка. Връща True, ако ключът съществува; в противен случай връща False.

Вход

np точка
 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') 

Изход:

 Key exists in Animals 

Проверете дали речникът има множество ключове.

В един оператор можем също да проверим дали речникът съдържа множество ключове. Можем да използваме всичко() функция в комбинация с разбирането на списъка, за да видите дали речникът съдържа много или всички ключове.

Код:

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

Изход:

 Not all the keys are there in Animals 

Разгледайте списъка с речници, за да видите дали ключът съществува

Списък с речници е колекция от речници, които могат да бъдат намерени в списък.

  • list_of_dictionary - списък с три речникови обекта в него.
  • 'b' в ключовете за ключовете в списъка с речници - създаване на списък с ключове в рамките на списък с речници с помощта на разбиране на списък. След това в списъка вижте дали е наличен. Той ще върне списък с True за ключове, които са 'b' и False за ключове, които не са едно.
  • any() - Проверява списъка True/False, предоставен чрез разбиране на списъка. Ключът „b“ присъства в списъка с речници, ако включва поне един True. След това блокът „if“ се изпълнява, след като върне True. В противен случай се изпълнява блокът 'else'.

Код:

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

Изход:

 Key exists in list_of_dictionaries 

Проверете дали ключът е в JSON речника

JSON означава „Javascript Object Notation“ и представлява двойка ключ-стойност, която записва стойности.

The json.loads() може да се използва за конструиране на речник от JSON текст.

След това, както се вижда по-долу, можем да използваме „if и in“, за да видим дали ключът присъства в JSON речника.

Вход

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

Изход:

 Key is present in the JASON dictionary 

Заключение

За да обобщим, ние се научихме как да проверим дали ключът е в речника по няколко начина. Научихме се също как да прилагаме тези методи към различни случаи, за да видим дали ключът е в речника. Видяхме също как всяка опция отнема различно време.