как узнать есть ли ключ в словаре python
Python | Проверьте, существует ли данный ключ в словаре
Имея словарь в Python, напишите программу на Python, чтобы проверить, существует ли данный ключ в словаре. Если присутствует, выведите «Present» и значение ключа. В противном случае выведите «Нет».
Примеры:
Подход № 1. Использование встроенных keys() метода keys()
Метод keys() возвращает список всех доступных ключей в словаре. С помощью встроенного метода keys() используйте оператор if и оператор «in», чтобы проверить, присутствует ли ключ в словаре или нет.
# Python3 Программа для проверки
# данный ключ уже существует в словаре.
# Функция для вывода суммы
print ( «Not present» )
Выход:
Подход № 2. Использование if и in
Этот метод просто использует оператор if чтобы проверить, существует ли данный ключ в словаре.
# Python3 Программа для проверки
# данный ключ уже существует в словаре.
# Функция для вывода суммы
print ( «Not present» )
Выход:
Подход № 3. Использование has_key() метода has_key()
has_key() возвращает true, если в словаре имеется заданный ключ, в противном случае он возвращает false. С помощью has_key() метода has_key() используйте оператор if, чтобы проверить, присутствует ли ключ в словаре или нет.
Примечание. has_keys() был удален из версии Python3. Поэтому его можно использовать только в Python2.
# Python3 Программа для проверки
# данный ключ уже существует в словаре.
Python: Проверьте, существует ли ключ в словаре
В этом уроке мы рассмотрим примеры того, как проверить, существует ли ключ в словаре на Python. Мы рассмотрим наиболее популярные и нишевые подходы и проведем сравнение производительности.
Вступление
Точно так же, как другие контейнеры имеют числовую индексацию, здесь мы используем ключи в качестве индексов. Ключи могут быть числовыми или строковыми. Однако никакая изменяемая последовательность или объект не может быть использована в качестве ключа, как список.
В примерах мы будем использовать этот fruits_dict словарь:
Проверьте, существует ли Ключ с помощью оператора in
Здесь он будет либо оценивать True если ключ существует или to False если его нет:
Теперь, поскольку у нас нет orange в нашем словаре, это результат:
Проверьте, существует ли ключ с помощью get()
Проверьте, существует ли Ключ с помощью ключей()
Функция keys() возвращает ключи из нашего словаря в виде последовательности:
Эта последовательность содержит:
Используя эту последовательность, мы можем проверить, присутствует ли ключ. Вы можете сделать это через цикл или, еще лучше, использовать оператор in :
Это также приводит к:
Проверьте, существует ли ключ с помощью has_key()
Вместо того чтобы вручную получать ключи и проверять наличие искомого значения, мы можем использовать функцию short-hand has_key() :
Обработка исключения “KeyError”
Следующее исключение возникает всякий раз, когда нашей программе не удается найти соответствующий ключ в словаре.
Это простой, элегантный и быстрый способ обработки поиска ключей:
Этот подход, хотя он может показаться неинтуитивным, на самом деле значительно быстрее, чем некоторые другие подходы, которые мы рассмотрели до сих пор.
Примечание: Обратите внимание, что исключения не должны использоваться для изменения потока кода или реализации логики. Они стреляют действительно быстро, но восстанавливаются от них очень медленно. Этот подход не должен быть предпочтительным по сравнению с другими подходами, когда это возможно.
Давайте сравним их производительность, чтобы получить лучшее представление о том, как быстро они могут выполняться.
Сравнение производительности
Наиболее популярный выбор и подход использования оператора in довольно быстр, и это также предполагаемый подход для решения этой проблемы.
Вывод
В этой статье мы обсудили несколько способов проверить, существует ли ключ в нашем словаре или нет. Затем мы провели сравнение производительности.
4 простых техники, чтобы проверить, существует ли ключ в словаре Python
В этой статье будет сосредоточиться на 4 способах проверить, существует ли ключ в словаре Python. Словарь Python в основном является структурой данных, в которой
В этой статье будет сосредоточиться на 4 Способы проверить, существует ли ключ в словаре Python Отказ Словарь Python Существует в основном структура данных, в которой элементы данных хранятся в паре клавиатуры.
Техника 1: «В» оператор, чтобы проверить, существует ли ключ в словаре Python
Python в операторе вместе с Если заявление Может использоваться для проверки того, существует ли определенный ключ в входном словаре Python.
Python в операторе в основном проверяет, содержится ли определенный элемент или значение в определенной последовательности, такой как список, кортеж, словарь и т. Д.
В приведенном выше примере мы использовали его заявление вместе с Python в Оператор, чтобы проверить, присутствует ли ключ «Ruby» в диктоме или нет.
Техника 2: Клавиши Python () Метод
Python в построенном Клавиши () Метод Может использоваться для проверки наличия ключа в существующем словаре.
Клавиши () Метод занимает Нет аргументов и возвращает Объект, который представляет список всех клавиш присутствует в конкретном входном словаре.
Итак, чтобы проверить, присутствует ли определенный ключ в Dict, мы используем Python, если заявление Наряду с методом Keys () для сравнения Search_Key со списком клавиш, возвращаемых из метода клавиш (). Если ключ присутствует, он будет следовать за оператором в порции IF, в противном случае он будет прыгать в оператор в еще часть.
Проверьте, существует ли данный ключ в словаре
Я хотел проверить, существует ли ключ в словаре перед обновлением значения для ключа. Я написал следующий код:
Я думаю, что это не лучший способ выполнить эту задачу. Есть ли лучший способ проверить ключ в словаре?
ОТВЕТЫ
Ответ 1
Если вы хотите использовать значение по умолчанию, вы всегда можете использовать dict.get() :
Ответ 2
Вам не нужно вызывать ключи:
Ответ 3
Вы можете проверить наличие ключа в словаре, используя ключевое слово in:
Ответ 4
Вы можете сократить это:
Однако это в лучшем случае косметическое улучшение. Почему вы считаете, что это не лучший способ?
Ответ 5
Дополнительная информация о скорости выполнения предложенных методов ответа (10-метровые петли):
Ответ 6
Ответ 7
Словарь в python имеет метод get (‘key’, default). Таким образом, вы можете просто установить значение по умолчанию, если нет ключа.
Ответ 8
Как насчет использования EAFP (проще просить прощения, чем разрешения):
Смотрите другие SO сообщения:
Ответ 9
Используя тернарный оператор:
Ответ 10
Для проверки вы можете использовать has_key()
Если вы хотите значение, вы можете использовать метод get()
Если вы хотите, чтобы в качестве значения по умолчанию в качестве значения по умолчанию использовался кортеж, список, словарь или любая строка, используйте метод get()
Ответ 11
Способы получения результатов:
Что лучше зависит от 3 вещей:
Использование try/block вместо ‘in’ или ‘if’:
Ответ 12
Python 2 только: (и Python 2.7 поддерживает in уже)
Вы можете использовать метод has_key():
Ответ 13
Просто добавление FYI к Крису. B (лучший ответ):
Ответ 14
Чтобы проверить, существует ли данный ключ в словаре, вы должны использовать любой из следующих подходов:
Первый подход (работает в Python 3):
Давай проверим это:
Результат первого Approach One :
Подход второй (работа в Python 3):
Давай проверим это тоже:
Результат Approach Two :
Подход третий (работа в Python 3):
Давай также проверим:
Результат Approach Three :
Надеюсь это поможет.
Ответ 15
print dict.get(‘key1’, ‘blah’)
Не будет печатать boo для значений в dict, но выполнит цель, напечатав значение key1, чтобы подтвердить его существование.
Ответ 16
Проверьте, существует ли данный ключ в словаре
Чтобы понять, как это сделать, мы сначала проверим, какие методы мы можем вызвать в словаре. Вот методы:
Жестоким методом проверки того, существует ли ключ, может быть метод get() :
Два других интересных метода items() и keys() звучат как слишком много работы. Итак, давайте рассмотрим, является ли get() правильным методом для нас. У нас есть Dict d :
Печать показывает, что ключ, которого у нас нет, вернет None :
Мы можем использовать это, чтобы получить информацию, если ключ присутствует или нет. Но учтите это, если мы создадим dict с одним key:None :
Мы получаем правильные результаты. Мы можем изучить байт-код Python:
Ответ 17
Ответ 18
Совместное использование еще одного способа проверки наличия ключа с использованием логических операторов.
объяснение
Давайте посмотрим на пример:
Мы можем использовать это для шаблона для проверки, существует ли ключ.
Это уже возвращает правильный результат, если ключ существует, но мы хотим, чтобы он печатал ‘boo’, когда его нет. Итак, мы берем результат и / or с ‘boo’
Ответ 19
Хорошо. Вам будет знакомо, что поиск существования элемента в списке или данных означает прохождение всего (по крайней мере, для неупорядоченного списка, например dict.keys). Так что вместо использования исключений и ошибок, которые возникают обычно, мы можем избежать этой сложности.
Ответ 20
или вы также можете сделать это как:
Ответ 21
Я использую попробовать/кроме; если выброшено исключение, то ключа нет в словаре. пример:
Ответ 22
Вы можете использовать цикл for для перебора словаря и получения имени ключа, который вы хотите найти в словаре, после этого проверьте, существует ли он или нет, используя условие if :
Ответ 23
Почему бы просто не использовать метод has_key().
Проверьте, существует ли данный ключ в словаре
Я хотел проверить, существует ли ключ в словаре, прежде чем обновлять значение ключа. Я написал следующий код:
Я думаю, что это не лучший способ выполнить эту задачу. Есть ли лучший способ проверить ключ в словаре?
19 ответов
Если вы хотите использовать значение по умолчанию, вы всегда можете использовать dict.get() :
Вам не нужно звонить по клавишам:
Вы можете проверить наличие ключа в словаре, используя ключевое слово in :
Вы можете сократить это:
Однако это в лучшем случае косметическое улучшение. Почему вы считаете, что это не лучший способ?
Для получения дополнительной информации о быстром выполнении предложенных методов принятого ответа (10-метровые петли):
Словарь в python имеет метод get (‘key’, default). Таким образом, вы можете просто установить значение по умолчанию, если нет ключа.
Как насчет использования EAFP (проще просить прощения, чем разрешения):
Посмотреть другие SO сообщения:
Использование троичного оператора:
Для проверки вы можете использовать метод has_key()
Если вам нужно значение, вы можете использовать метод get()
Если вы хотите, чтобы в качестве возвращаемого значения в качестве значения по умолчанию использовался кортеж, список, словарь или любая строка, используйте метод get()
Способы получения результатов:
Что лучше, зависит от 3 вещей:
Использование try /block вместо ‘in’ или ‘if’:
Просто добавление к Крису. B (лучший ответ):
Работает также; причина в том, что вызов int() возвращает 0 именно это defaultdict делает за кулисами (при создании словаря), отсюда и название «Factory Function» в документации.
Вы можете использовать метод has_key ():
Или метод dict.get для установки значения по умолчанию, если оно не найдено:
print dict.get(‘key1’, ‘blah’)
Не печатать boo для значений в dict, но достигает цели, печатая значение key1, чтобы подтвердить его существование.
Проще всего, если вы знаете, какой ключ (имя ключа) искать:
или вы можете сделать это просто так:
Я использую try /кроме ; если выброшено исключение, то ключа нет в словаре. Пример:
Чтобы проверить, существует ли данный ключ в словаре, вы должны использовать любой из следующих подходов :
Первый подход (работает в Python 3):
Давайте проверим это:
Результат Approach One :
Второй подход (работает в Python 3):
Давайте тоже это проверим:
Результат Approach Two :
Подход третий (работает в Python 3):
Давайте также проверим это.
Результат Approach Three :
Надеюсь, это поможет.
Почему бы просто не использовать метод has_key ().