Step 2 (S-15456)
Step on Stepik: https://stepik.org/lesson/3373/step/2
Словарь позволяет хранить множество пар: ключ - значение. И по первому значению в паре, то есть по ключу, получать соответствующее ему значение. Давайте разберемся, о каких парах идет речь, и зачем такое может понадобится. Обычный список позволяет однозначно идентифицировать элемент по его индексу (по его позиции в списке). Если мы хотим получить значение какого-то конкретного элемента, мы можем указать его индекс и получить соответствующие ему значение. Однако часто идентификатором элемента может являться не число.
Например, мы хотим хранить данные о автомобиле и его владельце. И получать информацию по номеру автомобиля, тогда у нас парой может являться следующая информация: ключом будет являться номер автомобиля (строка из букв и цифр), а значением будет информация об владельце автомобиля (строка - фамилия, имя). Таким образом, словари позволяют получить значение связанных пар, указав в качестве индекса ключ.
Словарю соответствует структура данных типа dict. Словарь можно создавать разными способами. Пустой словарь можно создать используя ключевое слово dict и вместо значения указать пустые фигурные скобки.
Если мы хотим создать словарь, инициализированный некоторыми элементами (не пустой словарь), то мы можем в фигурных скобках перечислить через запятую множество пар (ключ - значение). Для каждой пары ключ указывается слева, далее после двоеточия пишется значение.
Для получения значения из словаря мы указываем имя словаря, после которого в квадратных скобках записывается ключ.
Какие операции можно делать со словарями? Также, как и в случае с множествами, мы можем проверять: есть ли ключ в словаре с помощью конструкций in или not in. Результатом будет логическое выражение - True или False.
Мы можем добавить пару ключ - значение в словарь.
Для этого мы явно указываем, что в словаре d по ключу 'c' мы помещаем значение 42. После этой операции данные будут добавлены в словарь и к ним можно будет обратиться по ключу. Если ключ отсутствует в словаре возникнет ошибка.
Метод словаря get, позволяет получить по переданному ему ключу значение, если такой ключ есть в словаре, либо вернет специальное значение None, если ключ отсутствует.
Элементы словаря можно удалять. Для этого используется функцию del. При этом данные удаляются целиком (и пара, и значение).
Словари являются изменяемым типом данных, мы можем добавлять элементы в словарь и удалять элементы из него. Также, как и множества, словари не имеют порядка элементов. Если мы попробуем вывести элементы словаря, порядок вывода будет отличаться от порядка, в котором мы добавляли элементы в словарь.
Все ключи словаря различны, если мы попытаемся добавить значение по уже существующему ключу, то предыдущее значение будет затерто.
Ключи словаря должны быть неизменяемыми элементами. Например, ключами могут быть числа, строки, но не могут быть списки, либо другие словари.