JavaRush /Курсы /Модуль 1: Python Core /Работа со словарем

Работа со словарем

Модуль 1: Python Core
7 уровень , 1 лекция
Открыта

2.1 Получение количества элементов

В Python для получения количества элементов в словаре используется встроенная функция len(). Эта функция возвращает количество пар ключ-значение в словаре. Ну или количество ключей, если хотите.

Пример использования функции:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # Вывод: 3 

В этом примере у нас есть словарь person с тремя элементами. Функция len(person) возвращает количество элементов в словаре, которое равно 3.

Проверка пустоты словаря

Вы можете использовать функцию len() для проверки пустоты словаря. Это полезно в условиях и циклах.


empty_dict = {}
print(len(empty_dict))  # Вывод: 0

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

if len(person) > 0:
    print("Словарь не пустой")
else:
    print("Словарь пустой")

Словарь с вложенными структурами

Функция len() учитывает только количество верхнеуровневых ключей, независимо от того, что содержится в качестве значений.


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # Вывод: 3

В этом примере у нас есть словарь с вложенными структурами данных. len(complex_dict) возвращает 3, так как на верхнем уровне есть три ключа: "name", "details" и "hobbies".

len() игнорирует ключи внутри вложенных структур данных, таких как "age" и "city" внутри словаря "details", потому что len() считает только верхнеуровневые ключи. Если вам нужно посчитать количество всех элементов, включая вложенные структуры, необходимо будет использовать рекурсивный метод. Но о нем не сегодня.

2.2 Определение типа

Функция type() в Python используется для определения типа объекта. При работе со словарями type() позволяет определить, что объект является экземпляром класса dict. Это может быть полезно в различных сценариях, например, для проверки типа данных перед выполнением операций над словарем.

Примеры использования:

Проверка типа объекта


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # Вывод: <class 'dict'>

В этом примере мы создаем словарь person и используем type для определения его типа. Функция возвращает <class 'dict'>, указывая, что person является словарем.

Условная проверка типа данных

Функция type() может быть использована для проверки типа данных в условных выражениях, что позволяет выполнять определенные операции только для объектов типа dict.


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

if type(data) is dict:
    print("Это словарь.")
else:
    print("Это не словарь.")

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

Функция type() может быть использована внутри пользовательских функций для проверки типа аргументов, что позволяет гарантировать, что функция обрабатывает правильный тип данных.

Пример:


def process_data(data):
    if type(data) is dict:
        print("Обработка словаря...")
        # Выполнение операций над словарем
    else:
        print("Ошибка: ожидался словарь.")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

В этом примере функция process_data проверяет, является ли аргумент data словарем, и выполняет соответствующие операции только для словарей.

2.3 Получение элемента

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


словарь[ключ]

Пример:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # Вывод: Alice

Если ключ отсутствует, то возникнет ошибка:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # возникнет ошибка KeyError: 'country'

Метод get(key, def_value)

Метод get() позволяет безопасно получать значение по ключу. Если ключ отсутствует, метод возвращает значение по умолчанию (None, если значение по умолчанию не указано). Это предотвращает возникновение исключения KeyError.


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # Вывод: 25

country = person.get("country", "USA")
print(country)  # Вывод: USA

Вторым параметром в метод get() можно передать значение, которое нужно вернуть, если нужного ключа в словаре нет.

Метод setdefault() работает аналогично методу get(), но если ключа в словаре нет, метод не просто возвращает значение по умолчанию, а добавляет в словарь новую пару ключ: значение.


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # Вывод: New York
print(person)  # Вывод: {'name': 'Alice', 'age': 25, 'city': 'New York'}
2
Задача
Модуль 1: Python Core, 7 уровень, 1 лекция
Недоступна
Проверка на пустоту.
Проверка на пустоту.
2
Задача
Модуль 1: Python Core, 7 уровень, 1 лекция
Недоступна
Три способа порыться в словаре.
Три способа порыться в словаре.
Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Peter Уровень 6
25 сентября 2025
Уэе много раз говорили...но я не поленюсь.... "Гори в аду писатель текстов условий задач!!!!" Смотрите: Условие задачи №1:

# Напишите программу, которая создает словарь с информацией о человеке.
Условие задачи №2:

Напишите программу, которая создает словарь с информацией о человеке.
и, наконец, Условие задачи №3:

1. Программа должна создать словарь person_dict с информацией о человеке.
Т.е. я ***** должен прочитать все 3 условия, чтобы ни в коем случае не просрать момент, что внезапно меня просят создать словарь С ОПРЕДЕЛЁННЫМ именем переменной для него!!!! Надеюсь авторам курса точно так же пишут тех задания на их работе.
Рустем Уровень 14
31 августа 2025
Задач как то маловато, и что-то они уж совсем легкие. или там дальше начнется жара?
Zlopyhatel Уровень 0
11 февраля 2025
Написал бы я, что думаю про первую задачу, но повторяться не хочется. Только вопросы в голове крутятся: кто такое придумывает, кто такое проверяет и кто такое пропускает в пром, и самое печальное - зачем. Аплодирую стоя, так держать!
SWK Уровень 26
27 марта 2025
Не сдерживай себя! Всё равно, никто не читает...
Александр Уровень 19 Expert
26 января 2025
мне кажется в примере ошибка, ключи должны быть в кавычках:

complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # Вывод: 3
Олег Е Уровень 90
11 февраля 2025
Да! Правильный код:

complex_dict = {
    "name": "Alice",
    "details": {
        "age": 25,
        "city": "New York"
    },
    "hobbies": ["reading", "traveling"]
}
print(len(complex_dict))  # Вывод: 3
SWK Уровень 26
27 марта 2025
2 месяца, как написано сообщение, и никакой реакции...
Сказочный Осёл Уровень 2
14 мая 2025
Шёл уже месяц май. А реакции всё также нет 😀
Peter Уровень 6
25 сентября 2025
Да уже сентябрь заканчивается, авторам пофиг))
Виктор Уровень 25
15 декабря 2024
Первая задача - хорошаа