07 Июл 2023
2 мин
754

Фильтрация словаря в Python для получения только определенных ключей

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

Содержание

Часто возникает ситуация, когда имеется словарь с большим количеством элементов, но требуется работать только с определенными ключами. Допустим, есть словарь с данными о студенте:

student_data = {
    "name": "Иван",
    "age": 21,
    "university": "МГУ",
    "major": "Математика",
    "gpa": 4.0,
    "email": "ivan@example.com",
    "phone": "+79001234567",
}

Но в контексте конкретной задачи интересуют только имя, университет и специальность студента.

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

Способ 1: Использование генератора словарей

В Python есть мощный инструмент — генераторы словарей (dict comprehensions), который можно использовать для фильтрации словаря.

keys = ["name", "university", "major"]
filtered_data = {k: student_data[k] for k in keys}

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

Способ 2: Использование метода get()

Если есть вероятность, что некоторые из интересующих ключей могут отсутствовать в словаре, предыдущий способ вызовет ошибку. В этом случае можно использовать метод get(), который возвращает значение для данного ключа, если он есть в словаре, и None, если его нет.

filtered_data = {k: student_data.get(k, None) for k in keys}

Таким образом, с помощью генераторов словарей и метода get(), можно легко отфильтровать словарь в Python, оставив в нем только необходимые ключи.

Содержание

Добавить комментарий

Определи профессию по рисунку