JavaRush /Курси /Модуль 1: Python Core /Перевірка наявності елемента в словнику

Перевірка наявності елемента в словнику

Модуль 1: Python Core
Рівень 7 , Лекція 3
Відкрита

4.1 Перевірка наявності ключа в словнику

Існує кілька способів перевірити, чи міститься ключ у словнику, кожен із яких має свої особливості та застосування.

Оператор in

Найбільш поширений і ефективний спосіб перевірки наявності ключа у словнику — використання оператора in. Цей метод повертає True, якщо ключ присутній у словнику, і False в іншому випадку.


person = {"name": "Alice", "age": 25, "city": "New York"}

# Перевіряємо наявність ключів "name" та "country" у словнику
print("name" in person)  # Вивід: True
print("country" in person)  # Вивід: False

# Приклад використання в умовному операторі
if "age" in person:
    print("Ключ 'age' присутній у словнику.")
else:
    print("Ключ 'age' відсутній у словнику.")

Метод get()

Метод get() дозволяє безпечно отримувати значення за ключем, повертаючи None або зазначене значення за замовчуванням, якщо ключ відсутній. Ви можете використовувати цей метод для перевірки наявності ключа, перевіряючи, чи повертає він None.


person = {"name": "Alice", "age": 25, "city": "New York"}

# Отримуємо значення за ключем "age"
value = person.get("age")

# Перевіряємо, чи присутній ключ "age" у словнику
if value is not None:
    print("Ключ 'age' присутній у словнику.")
else:
    print("Ключ 'age' відсутній у словнику.")

Метод keys()

Метод keys() повертає представлення всіх ключів словника. Ви можете перевірити наявність ключа, використовуючи оператор in для ітерації за цим представленням.


person = {"name": "Alice", "age": 25, "city": "New York"}

# Перевіряємо наявність ключа "name" у представленні ключів словника
if "name" in person.keys():
    print("Ключ 'name' присутній у словнику.")
else:
    print("Ключ 'name' відсутній у словнику.")

4.2 Перевірка наявності елемента в словнику

Якщо ми хочемо перевірити, чи містить словник певне значення, прив'язане до ключа, то є кілька простих способів:

Використання методу values()

Метод values() повертає представлення всіх значень у словнику. Ви можете використовувати оператор in для перевірки наявності значення в цьому представленні.


person = {"name": "Alice", "age": 25, "city": "New York"}

# Перевіряємо наявність значення 25 у словнику
if 25 in person.values():
    print("Значення 25 присутнє у словнику.")
else:
    print("Значення 25 відсутнє у словнику.")

Використання функції set()

Ви можете перетворити представлення значень у множину і тоді використовувати оператор in для перевірки наявності значення.


person = {"name": "Alice", "age": 25, "city": "New York"}

# Перетворюємо представлення значень у множину
values_set = set(person.values())

# Перевіряємо наявність значення "New York" у множині значень
if "New York" in values_set:
    print("Значення 'New York' присутнє у словнику.")
else:
    print("Значення 'New York' відсутнє у словнику.")

Використання генератора

Ви можете використовувати генератор для перевірки наявності значення у словнику. Це забезпечує більш лаконічний та читабельний код.


person = {"name": "Alice", "age": 25, "city": "New York"}
value_to_find = 25

# Використовуємо генератор для перевірки наявності значення
if any(value == value_to_find for value in person.values()):
    print(f"Значення {value_to_find} присутнє у словнику.")
else:
    print(f"Значення {value_to_find} відсутнє у словнику.")

Об'єкти, які повертає values(), можуть бути неунікальними, тому при пошуку кількох елементів може бути корисним спершу перетворити їх у множину і в подальшому працювати з множиною елементів.

Коментарі (7)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Наталья Крейц Рівень 18
13 червня 2025
"Програма повинна використовувати генератор для перевірки, чи міститься у значеннях словника значення 22" Отже за умовою вік може бути любий, але при перевірці виявляється, що вік повинен бути саме 22 і ніяк інакше
Pavlo Kushnir Рівень 26
2 червня 2025
Вы серьезно???? "Значення 22 перевіряється, але воно не присутнє у словнику. Змініть значення в словнику або перевіряйте наявність значення, яке дійсно є у словнику" Задача звучит иначе: "Програма повинна використовувати генератор для перевірки, чи міститься у значеннях словника значення 22".
Pavlo Kushnir Рівень 26
2 червня 2025
Знову. Чому??? "Замість перевірки ключа 'writer', потрібно перевіряти ключ 'author'." Код написано правильно. А перевірка не пропускає через слово в лапках. Писатель на англ.: writer, author, scribe, pen, penman, novelist
Denis Рівень 14
26 травня 2025
Майже червень 2025. Помилки в завданнях досі не виправлені :(
Зепп Бранниган Рівень 7 Moderator
2 червня 2025
Вітаю. Уточніть, будь ласка, які помилки Ви помітили?
Andriy Trubchanin Рівень 23
18 лютого 2025
В чому сенс перетворювати на сет для перевірки?

# навіщо робити так
if "New York" in set(person.values()):
    pass

# якщо можна робити так
if "New York" in person.values():
    pass
Дмитро Рівень 31
11 квітня 2025
set (множина) зберігає тільки унікальні значення, отже так можна відсіяти всі повторювані дані в словнику В цьому прикладі це сенсу немає, а ось для аналізу даних застосування знайдеться) Шкода що про це не згадали