В 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 е заглавието на речника, който ще използвате.
Параметри
Код:
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
Заключение
За да обобщим, ние се научихме как да проверим дали ключът е в речника по няколко начина. Научихме се също как да прилагаме тези методи към различни случаи, за да видим дали ключът е в речника. Видяхме също как всяка опция отнема различно време.