Python словарь нет ключа

Содержание
  1. Проверить, существует ли данный ключ в словаре Python
  2. 1. Использование в операторе
  3. 2. Использование dict.get() функция
  4. 3. Использование блока try/except
  5. 4. Использование setdefault() функция
  6. Rukovodstvo
  7. статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
  8. Python: проверьте, существует ли ключ в словаре
  9. Введение Словарь (также известный как «карта», «хэш» или «ассоциативный массив») — это встроенный контейнер Python, в котором элементы хранятся в виде пары ключ-значение. Как и в других контейнерах с числовой индексацией, здесь мы используем ключи в качестве индексов. Ключи могут быть числовыми или строковыми значениями. Однако никакая изменяемая последовательность или объект не может использоваться в качестве ключа, как список. В этой статье мы рассмотрим, как проверить, существует ли ключ в словаре Python. В примерах мы будем использовать этот словарь fruit_dict:
  10. Вступление
  11. Проверьте, существует ли ключ, используя в Operator
  12. Проверьте, существует ли ключ, используя get ()
  13. Проверьте, существует ли ключ, используя keys ()
  14. Проверьте, существует ли ключ, используя has_key ()
  15. Обработка исключения KeyError
  16. Сравнение производительности
  17. Заключение

Проверить, существует ли данный ключ в словаре Python

В этом посте будет обсуждаться, как проверить, существует ли данный ключ в словаре Python.

1. Использование в операторе

Предпочтительный и самый быстрый способ проверить наличие ключа в словаре — использовать in оператор. Он возвращается True если ключ есть в словаре, False в противном случае.

The in оператор реализует встроенную функцию __contains__ . Однако вызывать __contains__ напрямую. in оператор — это Pythonic способ вызвать __contains__ функция.

2. Использование dict.get() функция

Другим распространенным подходом к поиску ключа в словаре является использование get() функция. Это возвращает значение ключа, если оно найдено; в противном случае указанное значение или значение по умолчанию None возвращается.

Читайте также:  Transformer class in java

3. Использование блока try/except

Вы также можете использовать dPython словарь нет ключа синтаксис для проверки ключа в словаре. Это вызывает KeyError когда указанный ключ не существует в словаре. Чтобы справиться с этим, используйте блок try/except, как показано ниже:

4. Использование setdefault() функция

Наконец, вы можете использовать встроенную функцию setdefault() , который вставляет ключ, только если он не найден в словаре. Это особенно полезно, когда вам нужно вставить ключ, только если он еще не существует в словаре.

Это все, что касается определения того, существует ли данный ключ в словаре Python.

Средний рейтинг 5 /5. Подсчет голосов: 24

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Python: проверьте, существует ли ключ в словаре

Введение Словарь (также известный как «карта», «хэш» или «ассоциативный массив») — это встроенный контейнер Python, в котором элементы хранятся в виде пары ключ-значение. Как и в других контейнерах с числовой индексацией, здесь мы используем ключи в качестве индексов. Ключи могут быть числовыми или строковыми значениями. Однако никакая изменяемая последовательность или объект не может использоваться в качестве ключа, как список. В этой статье мы рассмотрим, как проверить, существует ли ключ в словаре Python. В примерах мы будем использовать этот словарь fruit_dict:

Вступление

Словарь (также известный как «карта», «хэш» или «ассоциативный массив»)

Как и в других контейнерах с числовой индексацией, здесь мы используем ключи в качестве индексов. Ключи могут быть числовыми или строковыми значениями. Однако никакая изменяемая последовательность или объект не может использоваться в качестве ключа, как список.

В этой статье мы рассмотрим, как проверить, существует ли ключ в словаре Python .

В примерах мы будем использовать этот словарь fruits_dict

 fruits_dict = dict(apple= 1, mango= 3, banana= 4)

Проверьте, существует ли ключ, используя в Operator

Самый простой способ проверить, существует ли ключ в словаре, — использовать оператор in Это специальный оператор, используемый для оценки принадлежности значения.

Здесь будет либо True если ключ существует, либо False если нет:

 key = 'orange' if key in fruits_dict: print('Key Found') else: print('Key not found') 

Теперь, когда orange , вот результат:

Это предполагаемый и предпочтительный подход большинства разработчиков. Под капотом он использует __contains__() чтобы проверить, находится ли данный ключ in словаре или нет.

Проверьте, существует ли ключ, используя get ()

Функция get() принимает key и необязательное значение, которое должно быть возвращено, если key не найден. По умолчанию это необязательное значение — None . Мы можем попробовать получить ключ, и если возвращенное значение None , это означает, что его нет в словаре:

 key = 'orange' if fruits_dict.get(key) == None: print('Key not found') else: print('Key found') 

Проверьте, существует ли ключ, используя keys ()

Функция keys() возвращает ключи из нашего словаря в виде последовательности:

Эта последовательность содержит:

 dict_keys(['apple', 'mango', 'banana']) 

Используя эту последовательность, мы можем проверить, присутствует ли ключ. Вы можете сделать это с помощью цикла или, что еще лучше, использовать оператор in

 key = 'orange' if key in fruits_dict.keys(): print('Key found') else: print('Key not found') 

Проверьте, существует ли ключ, используя has_key ()

Вместо того, чтобы вручную получать ключи и проверять, присутствует ли has_key() :

 key = 'orange' if fruits_dict.has_key(key): print('Key found') else: print('Key not found') 

Он возвращает True или False зависимости от наличия ключа. Этот код выводит:

Обработка исключения KeyError

Интересный способ избежать проблем с несуществующим ключом или, другими словами, проверить, существует ли ключ в нашем словаре или нет, — это использовать предложение try и except для обработки исключения KeyError

Следующее исключение возникает всякий раз, когда нашей программе не удается найти соответствующий ключ в словаре.

Это простой, элегантный и быстрый способ поиска ключей:

 try: fruits_dictPython словарь нет ключа except KeyError as err: print('Key not found') 

Этот подход, хотя он может показаться не интуитивным, на самом деле значительно быстрее, чем некоторые другие подходы, которые мы рассмотрели до сих пор.

Примечание. Обратите внимание, что исключения не следует использовать для изменения потока кода или для реализации логики. Они стреляют очень быстро, но оправляются от них очень медленно. По возможности не следует отдавать предпочтение этому подходу по сравнению с другими подходами.

Давайте сравним их производительность, чтобы лучше понять, насколько быстро они могут выполняться.

Сравнение производительности

 import timeit code_setup = """ key = 'orange' fruits_dict = dict(apple= 1, mango= 3, banana= 4) """ code_1 = """ if key in fruits_dict: # print('Key Found') pass else: # print('Key not found') pass """ code_2 = """ if fruits_dict.get(key): # print('Key found') pass else: # print('Key not found') pass """ code_3 = """ if fruits_dict.__contains__(key): # print('Key found') pass else: # print('Key not found') pass """ code_4 = """ try: # fruits_dictPython словарь нет ключа pass except KeyError as err: # print('Key not found') pass """ code_5 = """ if key in fruits_dict.keys(): # print('Key found') pass else: # print('Key not found') pass """ print('Time of code_1: ', timeit.timeit(setup = code_setup , stmt= code_1, number= 10000000)) print('Time of code_2: ', timeit.timeit(setup = code_setup , stmt= code_2, number= 10000000)) print('Time of code_3: ', timeit.timeit(setup = code_setup , stmt= code_3, number= 10000000)) print('Time of code_4: ', timeit.timeit(setup = code_setup , stmt= code_4, number= 10000000)) print('Time of code_5: ', timeit.timeit(setup = code_setup , stmt= code_5, number= 10000000)) 
 Time of code_1: 0.2753713619995324 Time of code_2: 0.8163219139996727 Time of code_3: 0.5563563220002834 Time of code_4: 0.1561058730003424 Time of code_5: 0.7869278369998938 

Самый популярный вариант и подход — использование in — довольно быстрый, и это также предполагаемый подход для решения этой проблемы.

Заключение

В этой статье мы обсудили несколько способов проверить, существует ли ключ в нашем словаре или нет. Затем мы провели сравнение производительности.

Licensed under CC BY-NC-SA 4.0

Источник

Оцените статью