Как найти ключ в словаре питон

от admin

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

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

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

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

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

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

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

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

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

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

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

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

Оценить этот пост

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

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

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

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

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

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

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

Словари и их методы в Python

Словарь — неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение». Вот пример словаря на Python:

Данный словарь использует строки в качестве ключей, однако ключом может являться в принципе любой неизменяемый тип данных. Значением же конкретного ключа может быть что угодно. Вот ещё один пример словаря, где ключами являются числа, а значениями — строки:

Важное уточнение: если вы попробуете использовать изменяемый тип данных в качестве ключа, то получите ошибку:

Прим. перев. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же.

Получение данных из словаря

Для получения значения конкретного ключа используются квадратные скобки [] . Предположим, что в нашем словаре есть пара ‘марафон’: 26 .

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

Добавление и обновление ключей

Добавление новых пар в словарь происходит достаточно просто:

Обновление существующих значений происходит абсолютно также:

Удаление ключей

Для удаления ключа и соответствующего значения из словаря можно использовать del

Методы

Словари в Python имеют множество различных полезных методов, которые помогут вам в работе с ними. Вот лишь некоторые из них:

Update

Метод update() пригодится, если нужно обновить несколько пар сразу. Метод принимает другой словарь в качестве аргумента.

Если вас интересует, почему данные в словаре расположены не в том порядке, в котором они были внесены в него, то это потому что словари не упорядочены.

Метод get() возвращает значение по указанному ключу. Если указанного ключа не существует, метод вернёт None .

Метод можно использовать для проверки наличия ключей в словаре:

Также можно указать значение по умолчанию, которое будет возвращено вместо None , если ключа в словаре не окажется:

Метод pop() удаляет ключ и возвращает соответствующее ему значение.

Метод keys() возвращает коллекцию ключей в словаре.

Values

Метод values() возвращает коллекцию значений в словаре.

Items

Метод items() возвращает пары «ключ — значение».

Итерация через словарь

Вы можете провести итерацию по каждому ключу в словаре.

Очевидно, вместо story_count можно использовать story_count.keys() .

В примере кода ниже цикл for использует метод items() для получения пары «ключ — значение» на каждую итерацию.

Rukovodstvo

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

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

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

Время чтения: 4 мин.

Вступление

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

  • это встроенный контейнер Python, в котором элементы хранятся в виде пары ключ-значение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это также приводит к:

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Читать:
Audacity что это за программа

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

Python Check if Key Exists in a Dictionary Cover Image

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

Quick Answer - Python Check if Key Exists in a Dictionary

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:

  1. Be an empty list, if the value doesn’t exist,
  2. Have one item, if the value exists once
  3. 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.

Похожие статьи