У 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
Цей метод перевіряє, чи існує певний ключ у словнику за допомогою оператора 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
Тепер, дивлячись на негативний випадок.
шаблони програмування 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')
Вихід:
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 — це назва словника, який ви використовуватимете.
Параметри
код:
бінарне дерево обходу поштою
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
Тепер беручи негативний випадок,
код:
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, він буде неточним. Якщо у нас його немає, цієї техніки буде достатньо. Якщо ми хочемо використовувати значення, повернуті цим методом, ми можемо зберегти їх у змінній.
Використання клавіш()
The ключі() і оператор 'in' можна використовувати, щоб побачити, чи існує ключ у словнику. The ключі() метод повертає список ключів у словнику, а оператор if, in перевіряє, чи є наданий ключ у списку. Він повертає True, якщо ключ існує; інакше повертає False.
Введення
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», і це пара ключ-значення, яка зберігає значення.
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')
Вихід:
css змінює розмір зображення
Key is present in the JASON dictionary
Висновок
Підсумовуючи, ми навчилися кількома способами перевірити, чи є ключ у словнику. Ми також навчилися застосовувати ці методи до різних екземплярів, щоб побачити, чи є ключ у словнику. Ми також бачили, як кожен варіант займає різну кількість часу.