Python: Check if a Key (or Value) Exists in a Dictionary (5 Easy Ways)

In this tutorial, you’ll learn how to use Python to check if a key exists in a dictionary. You’ll also learn how to check if a value exists in a dictionary. You’ll learn how to do this using the in operator, the .get() method, the has_key() function, and the .keys() and .values() methods.
Knowing how to work with Python dictionaries is an important skill. This can be especially helpful when working with web APIs that return JSON data.
While we can easily index a dictionary, if a key doesn’t exist, a KeyError will be thrown. This will cause some significant problems in your program, unless these errors are handled.
A much more safe alternative to using dictionary indexing, is to first check if a given key exists in a dictionary. Let’s get started learning!
The Quick Answer: Use in to see if a key exists

Table of Contents
What is a Python Dictionary?
Dictionaries in Python are one of the main, built-in data structures. They consist of key:value pairs that make finding an items value easy, if you know their corresponding key. One of the unique attributes of a dictionary is that keys must be unique, but that values can be duplicated.
Let’s take a look at how dictionaries look in Python. They’re created using <> curly brackets and the key:value pairs are separated by commas.
Let’s create a dictionary called ages , which, well, contains the ages of different people:
One way that you’re often taught to access a dictionary value is to use indexing via the [] square bracket accessing. In the next section, you’ll see how dictionary indexing works and why it’s not always the best option. Following that, you’ll learn different methods of ensuring that a key exists.
The Problem with Indexing a Python Dictionary
Indexing a dictionary is an easy way of getting a dictionary key’s value – if the given key exists in the dictionary. Let’s take a look at how dictionary indexing works. We’ll use dictionary indexing to get the value for the key Nik from our dictionary ages :
We can see here that this worked beautifully. That being said, let’s see if we try to get the value for the key Jill , which doesn’t exist in the dictionary:
We can see here, that if we try to access a dictionary’s value for a key that doesn’t exist, that a KeyError is thrown. This has some huge implications for your code. Unless the error is explicitly handled, the program will fail. One way to avoid a KeyError is to ensure that a key actually exists in a Python dictionary.
That’s exactly what you’ll learn in the next few sections. Let’s get started!
Use Python to Check if a Key Exists: Python keys Method
Python dictionary come with a built-in method that allows us to generate a list-like object that contains all the keys in a dictionary. Conveniently, this is named the .keys() method.
Printing out dict.keys() looks like this:
We can see how that looks like a little bit like a list. We can now check if a key exists in that list-like object!
Let’s see how we can use the .keys() method to see if a key exists in a dictionary. Let’s use this method to see if a key exists:
We can see here that we check whether or not a provided key, some_key , exists in the keys of our dictionary. In this case, the key didn’t exist and the program printed out Key doesn’t exist .
In the next section, you’ll learn how to simplify this even further!
Use Python to Check if a Key Exists: Python in Operator
The method above works well, but we can simplify checking if a given key exists in a Python dictionary even further. We can actually omit the .keys() method entirely, and using the in operator will scan all keys in a dictionary.
Let’s see how this works in practise:
We can see here that our method actually looks very similar to the above, but we’ve been able to strip out the .keys() method entirely! This actually helps the code read a bit more plain-language.
in the next section, you’ll learn how to actually retrieve a key’s value, even if a key doesn’t exist!
Use the .get Method to Check if a Key Exists in a Python Dictionary
Working with dictionaries in Python generally involves getting a key’s value – not just checking if it exists. You learned earlier that simply indexing the dictionary will throw a KeyError if a key doesn’t exist. How can we do this safely, without breaking out program?
The answer to this, is to use the Python .get() method. The .get() method will simply return None if a key doesn’t exist. Let’s try this out:
We can see here that when the .get() method is applied to return a key that exists, that key’s value is correctly returned. When a key doesn’t exist, the program continues to run, but it returns None .
What is particularly helpful about the Python .get() method, is that it allows us to return a value, even if a key doesn’t exist.
Say we wanted our program to notify us that a key didn’t exist. We could ask the .get() method to return “Key doesn’t exist!”.
Let’s see how we can do this:
The .get() method is a great and safe way to see if a key exists in a Python dictionary. Now, let’s learn to see whether or not a given value exists in a Python dictionary.
Check if a Value Exists in a Python Dictionary Using .values()
Similar to the Python dictionary .keys() method, dictionaries have a corresponding .values() method, which returns a list-like object for all the values in a dictionary.
Let’s see how we can access all of a dictionary’s values:
We can use this to see whether or not a value exists. Say we wanted to know if the age 27 existed in our dictionary, we could write the following:
Now, what if we wanted to return the key or keys for a given value. We can safely do this using a list comprehension, which will have three permutations:
- Be an empty list, if the value doesn’t exist,
- Have one item, if the value exists once
- Have more than one item, if the value exists more than once
Let’s use a slightly modified dictionary to see this in action:
We’ve created a list comprehension that adds each key, if the value of that key is equal to 43.
What are Python List Comprehensions? To learn more about list comprehensions, check out my comprehensive tutorial here and my in-depth video below!
Conclusion
In this post, you learned how to check if a key exists in a Python dictionary. You learned how to do this with the .keys() method, the in operator, and the .get() method. You also learned how to see if a given value exists in a Python dictionary and how to get that values’ key(s).
To learn more about dictionaries in Python, check out the official documentation here.
Поиск ключа по значению в словаре в Python

При работе с словарями в Python часто возникает необходимость найти ключ, соответствующий определенному значению. Это может быть полезно, когда требуется обратный доступ к данным или выполнение определенных операций на основе значений в словаре. В данной статье мы рассмотрим несколько методов поиска ключа по значению в словаре.
Мы представим вам несколько эффективных и удобных способов поиска ключа в словаре, позволяющих решить эту задачу с помощью различных подходов. Мы рассмотрим использование понимания списка, метода list.index() , метода dict.items() , лямбда-выражений с функцией filter() и модуля re для работы с регулярными выражениями.
Каждый метод будет представлен с примерами кода, который поможет вам лучше понять и применить эти подходы к своим проектам. Вы сможете выбрать наиболее подходящий способ в зависимости от ваших потребностей и предпочтений.
Поиск ключа по значению, используя понимание списка
При работе со словарями в Python может возникнуть необходимость найти ключи, соответствующие определенному значению. В таких случаях можно использовать понимание списка для эффективного поиска. Давайте рассмотрим пример с оценками студентов:
В этом примере у нас есть словарь students , в котором ключами являются имена студентов, а значениями — их оценки. Наша цель — найти все ключи (имена студентов), у которых оценка равна target_grade (B).
Мы используем понимание списка, создавая список keys . Мы перебираем ключи key в словаре students и проверяем, равно ли значение оценки students[key] целевой оценке target_grade . Если условие выполняется, мы добавляем соответствующий ключ key в список.
В результате выполнения кода мы получим следующий вывод:
Таким образом, мы нашли ключи (имена студентов) с оценкой, равной «B», используя понимание списка. Этот подход позволяет эффективно находить ключи по заданному значению в словаре.
Поиск ключа по значению с помощью list.index()
В Python существуют различные способы поиска ключа по значению в словаре. Один из таких способов — использование метода list.index() в сочетании с преобразованием словаря в список.
Давайте рассмотрим пример, где мы ищем ключ по заданному значению в словаре с оценками студентов:
этом примере мы начинаем с создания списка keys , содержащего все ключи из словаря students . Затем мы используем метод list.index() для поиска индекса первого вхождения значения target_grade в списке значений словаря. После получения индекса мы можем получить соответствующий ключ из списка keys .
При выполнении кода мы получим следующий вывод:
Таким образом, мы нашли ключ (имя студента) с оценкой «B», используя метод list.index() в сочетании с преобразованием словаря в список. Этот метод предоставляет удобный способ получить ключ, соответствующий заданному значению в словаре.
Обратите внимание, что при использовании данного метода, мы находим только первый встреченный ключ для данного значения.
Поиск ключа по значению с помощью dict.item()
В Python для поиска ключа по значению в словаре мы можем использовать метод dict.items() . Этот метод возвращает представление словаря в виде списка кортежей, каждый из которых содержит ключ и значение.
Рассмотрим пример, где мы ищем все ключи, соответствующие заданному значению в словаре с оценками студентов:
В данном примере мы используем генератор списка для прохода по каждому элементу из students.items() . Здесь students.items() возвращает список кортежей, содержащих пары ключ-значение. Затем мы проверяем, соответствует ли значение заданному target_grade и добавляем ключ в список keys .
При выполнении кода мы получим следующий вывод:
Таким образом, мы нашли все ключи (имена студентов), у которых оценка равна «B», используя метод dict.items() . Этот метод предоставляет удобный способ получить доступ к парам ключ-значение в словаре и выполнить поиск ключа по значению.
Поиск ключа по значению с помощью лямбда-выражения и filter()
В Python для поиска ключа по значению в словаре мы можем использовать комбинацию лямбда-выражения и функции filter() . Функция filter() позволяет нам отфильтровать элементы из последовательности, основываясь на заданном условии.
Рассмотрим пример, где мы ищем ключи, соответствующие заданному значению в словаре с оценками студентов:
В данном примере мы создаем лямбда-выражение, которое проверяет соответствие значения по ключу в словаре students заданному target_grade . Затем мы используем функцию filter() для применения этого лямбда-выражения к каждому ключу в словаре. Результатом будет отфильтрованный итератор, который мы преобразуем в список с помощью list() .
При выполнении кода мы получим следующий вывод:
Таким образом, мы нашли все ключи (имена студентов), у которых оценка равна «B», используя лямбда-выражение и функцию filter() . Этот подход предоставляет более компактный способ поиска ключей по значению в словаре.
Поиск ключа по значению с помощью модуля re
Следующий метод использует модуль re для поиска ключа по значению в словаре:
В приведенном коде мы начинаем с определения входного словаря students , который содержит оценки студентов. Затем мы выбираем значение, которое мы хотим найти, и сохраняем его в переменную value . Например, мы можем искать студента с оценкой «B».
Далее мы создаем регулярное выражение, используя модуль re . В данном случае мы используем регулярное выражение, которое соответствует точному совпадению значения. Мы экранируем значение с помощью функции re.escape() для обработки специальных символов, которые могут быть в значении (например, если значение содержит символы, которые являются метасимволами в регулярных выражениях).
Затем мы используем генератор списка и функцию next() для прохода по парам ключ-значение в словаре students . Мы применяем функцию pattern.search() к значению и проверяем, соответствует ли значение регулярному выражению. Если найдено первое соответствие, мы прекращаем поиск и сохраняем ключ в переменную key . Если нет соответствия или словарь пустой, переменная key будет иметь значение None .
В конце мы проверяем значение переменной key . Если значение не равно None , это означает, что ключ по указанному значению был найден, и мы выводим сообщение о том, что ключ найден, и выводим сам ключ. В противном случае, если значение key равно None , это означает, что ключ по указанному значению не был найден, и мы выводим сообщение о том, что ключ не найден.
Таким образом, данный код позволяет найти ключ в словаре, соответствующий указанному значению, с использованием модуля re для более гибкого и точного поиска.
Словари¶
dict (от английского «dictionary», словарь) – еще один тип данных в Python. Словари хранят пары ключ : значение . То есть в списках можно достать элемент, если указать его позицию в виде целого числа, а в словарях – тот самый ключ . dict – тип данных, поэтому достать элемент по номеру не получится, но отображение содержимого будет элементов. ключей должна поддерживаться, чтобы всегда можно было быстро найти одно единственно верное значение .
В некоторых языках программирования можно встретить ассоциативные массивы – полную аналогию dict . Также вспомним базы данных, широко использующиеся во всём мире для хранения информации: в таблице можно установить первичный ключ, который уникально идентифицирует запись, как и ключ соответствует значению в словаре. Самый простой пример ключа — порядковый номер объекта!
Создание словаря¶
Использовать словарь стоит, когда нужно сохранять объекты с какими-то ключами и обращаться к объектам по известным ключам. Один из способов определения словаря: указание пар ключ : значение через^запятую внутри фигурных скобок <> . Напоминает set , правда? <> позволяет создать пустой словарь, но не пустое множество.
Например, решили упростить себе жизнь и больше не запоминать дни рождения коллег. Вместо этого, лучше хранить их в одном месте:
В примере dates имеет две пары значений. В первой паре строка «Кунг Фьюри» является ключом, а «1968-09-09» – его значением.
Получение значения по ключу¶
Чтобы получить значение по ключу, необходимо обратиться к переменной, содержащей словарь, и указать ключ в квадратных скобках [] :
Если указать неверный ключ в [] , Python будет ругаться: выбросит ошибку KeyError и перестанет выполнять код. Чуть ниже посмотрим, как можно избежать таких ситуаций.
Изменение и добавление значений¶
Синтаксис изменения значения по ключу и добавления нового ключа со значением одинаковый: в [] нужно указать ключ, поставить = и указать значение, которое теперь будет соответствовать ключу.
Если ключ уже был в словаре, значение по нему изменится на новое, а старое будет удалено. Указание нового ключа со значением добавляет пару в словарь.
Основные методы словаря¶
Проверка вхождения и get() ¶
Помните, ранее говорили, что обращение к несуществующему ключу приводит к ошибке? Пришло время посмотреть пару способов борьбы!
Можно проверить, есть ли интересующий ключ среди множества ключей словаря. Это делается при помощи бинарного оператора in . Слева должен быть указан ключ, справа – переменная со словарем:
В коде проверку можно использовать в условной конструкции if , чтобы принимать решение в зависимости от наличия ключа:
Теперь о методе get() : при помощи его тоже можно получать значения из словаря по ключу. KeyError никогда не появится: если ключа нет, по умолчанию возвращается None :
Вторым аргументом метода get() можно указать значение, которое должно возвращаться вместо None , когда ключ не был найден:
Что такое «длина словаря»?¶
Функция len() для словаря будет возвращать количество пар ключ : значение (их столько же, сколько ключей), которое в нём содержится:
Удаление из словаря¶
Есть несколько способов очистки в словаре: можно убирать по ключу, а можно сразу удалить все!
при помощи инструкции del (от английского «delete») можно удалить пару ключ : значение (удаление ключа эквивалентно удалению пары ключ : значение , так как теряем возможность найти то самое значение ), в общем виде:
Предположим, коллега из самого первого примера уволился и больше нет смысла хранить его день рождения:
pop() — метод, который достает значение, хранящееся по переданному ключу, и сразу удаляет ключ из словаря:
Для метода pop() есть возможность указать значение, которое будет возвращено при обращении к несуществующему ключу. Почти как get() , но всё-таки, без указания этого значения, pop() выбрасывает KeyError .
popitem() имеет схожее название, но не путайте с предыдущим методом: этот на вход не принимает ключ , а возвращает пару ключ : значение , которая была добавлена последней (такое поведение гарантируется с Python ).
clear() позволяет удалить сразу все ключи словаря, то есть полностью его очистить:
Обратите внимание на то, как работают методы pop() , popitem() и clear() : как только вызываются, словарь меняет свой состав (изменения происходят in place, то изменить по месту без копирования).
Обновление и добавление ключей¶
Лицезрели, что значения в словарь можно добавлять или менять, обращаясь по ключу. Python предоставляет возможность не писать кучу присваиваний, а использовать лаконичный метод update() , который на вход может принимать либо другой словарь, либо пары ключ : значение в какой-то последовательности (например, кортежи по два значения в списке: первое – ключ, второе – значение)
А что, если в update() передать пары, ключ которых уже был в словаре? Значения по дублирующимся ключам будут на новые:
Доступ к ключам и значениям¶
В Python можно без проблем извлекать отдельно по ключам или значениям, а также итерироваться по элементам словарей в цикле for . Осталось разобраться, как это работает.
Ключи¶
По умолчанию, в конструкциях вида
переменные цикла (тут – key ) будут принимать значения из множества словаря. Аналогично можно использовать метод keys() (позволяет достать все ключи), который явно говорит, что цикл идет по ключам, например:
Значения¶
При помощи метода values() можно получить все значения, хранящиеся по всем ключам словаря:
Напрямую по значению получить ключ нельзя.
Всё и сразу¶
Существует метод items() , который достает пары ключ : значение в виде последовательности кортежей. Его же часто удобно использовать в циклах, дабы не тащить длинную запись в виде названия словаря и квадратных скобок с ключом при обращении к значению:
Сортировка¶
Функция sorted() доступна и для словарей. По умолчанию ключи словаря поддерживают порядок, в котором были добавлены, но можно отсортировать их в нужном направлении (в зависимости от типа):
Когда в функции передаётся просто название переменной со словарем, работа идет только над множеством ключей.
Можно ли отсортировать словарь по значениям?
Да, можно попробовать самостоятельно разобраться с аргументами функции sorted() .
Что можно хранить¶
Теперь добавим немного технических подробностей: возможно, уже заметили самостоятельно, что dict может принимать в качестве ключа не всякое значение. На самом деле только объекты (можно вызвать функцию hash() и получить значение) могут быть ключами словаря, на значения это ограничение не распространяется. В dict и set значение хеша от объекта используется для поиска внутри структуры.
Ключом словаря нельзя сделать объект типа, например, list , set или сам dict , так как значение их хеша может измениться со временем. Неизменяемый кортеж может быть ключом только если не содержит внутри изменяемые объекты.
Изменяемость и неизменяемость¶
В англоязычной литературе изменяемые типы называют , а неизменяемые – , почитать документацию.
В Python всё есть объект. Когда пользователь присваивает значение переменной, она начинает ассоциироваться с ячейкой памяти, где лежит это значение. Переменная знает адрес, откуда можно получить значение. id() и hex() показывают адрес в памяти компьютера. id() — адрес в десятичном виде, а hex() поможет перевести в шестнадцатеричный.
Python dictionary find a key by value
In this Python tutorial, we will learn about the Python dictionary to find a key by value. Also, we will discuss the below examples:
- Python dictionary find key by max value.
- Python dictionary get Key value by index
- Python dictionary find key using value
- Python dictionary get key value pair
- Python dictionary find key with maximum value
- Python dictionary get key if value exists
Table of Contents
Python dictionary find a key by value
- Here we can see how to get the key by value in Python.
- We can perform this task by various methods, Here is the list of some that we can use.
- By using list.index()
- By using dict.items() method
- By using list comprehension method
By using list.index() method
The index method always returns the index position in a list or dictionary.
Source Code:
Here is the Screenshot of the following given code

By using dict.items() method
This method returns a dictionary view object that displays the list of a dictionary in the key-value pair form.
Example:
Execution:

By using list comprehension method
In Python to get the key with the maximum value, we can use the list comprehension method. This method will help the user to execute each element along with the for loop to iterate each item.
Example:
Output:

Python dictionary find key by max value
- Let us see how to find the key by the maximum value.
- By using the max() function we will find the key with maximum value in Dictionary.
- To do this task first we will initialize a dictionary and assign them a key-value pairs element. Now use a max() function to get the key with maximum value.
Example:
Here is the implementation of the following given code

Another example to get the key with max value
By using the itemgetter() function and operator module we can easily get the key. The itemgetter() function returns an object that collects an item from its operand using the operator module.
Let’s take an example and check how to get the key by using the itemgetter() function.
Here is the Screenshot of the following given code

By using lambda function
In Python, the lambda function did not need any name, they are nameless. They are used to declare a one-line function. In this example, you just need to give the function a value and then provide an expression.
Example:
In this example, we have to check how to find a key with maximum value using the lambda function
Screenshot:

Python dictionary get key value by index
- Let us see how to get a key-value pair by index in the dictionary.
- To perform this task we can use the enumerator method. This is an in-built function in Python that allows the user to check how many iterations have occurred. This method can be used directly for loops and convert them into a list.
- Let’s take an example and check how to get key-value pair by index.
Here is the execution of the following given code

Another example to check how to get key-value index by using dict() method
Source Code:
Here is the Output of the following given code

Python dictionary find key using value
In Python to find a key using the value, we can collect the key from a value by comparing all the values and get the specific key. In this example, we can use dict.items() method.
Example:
Let’s take an example and check how to find a key by using the value.
Here is the Screenshot of the following given code

Python dictionary get key value pair
- To get key-value pair in the dictionary we can easily use the enumerator method.
- This method helps the user to access the named index of the position of the key-value element in the dictionary.
Example:
Here is the implementation of the following given code

Another example to check how to get key value pair
To perform this particular task we can easily use the list comprehension method. This method returns the elements in the form of key-value pairs and it will display the result as tuples of key and value in the list.
Example:
Here is the Screenshot of the following given code

Python dictionary find key with maximum value
To find the key with the maximum value we can easily use the function values() and keys().
Here is the execution of the following given code

Python dictionary get key if value exist
- Let us see how to get a key if the value exists in dictionary.

You may also like reading the following articles.
In this Python tutorial, we have learned about the Python dictionary to find a key by value. Also, we have also discussed the below examples:
- Python dictionary find key by max value.
- Python dictionary get Key value by index
- Python dictionary find key using value
- Python dictionary get key value pair
- Python dictionary find key with maximum value

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.