Step 2 (S-15456)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3373/step/2

S-15456-1.png

Словарь позволяет хранить множество пар: ключ - значение. И по первому значению в паре, то есть по ключу, получать соответствующее ему значение. Давайте разберемся, о каких парах идет речь, и зачем такое может понадобится. Обычный список позволяет однозначно идентифицировать элемент по его индексу (по его позиции в списке). Если мы хотим получить значение какого-то конкретного элемента, мы можем указать его индекс и получить соответствующие ему значение. Однако часто идентификатором элемента может являться не число.

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

S-15456-2.png

Словарю соответствует структура данных типа dict. Словарь можно создавать разными способами. Пустой словарь можно создать используя ключевое слово dict и вместо значения указать пустые фигурные скобки.

S-15456-3.png

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

S-15456-4.png

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

Какие операции можно делать со словарями? Также, как и в случае с множествами, мы можем проверять: есть ли ключ в словаре с помощью конструкций in или not in. Результатом будет логическое выражение - True или False.

S-15456-5.png

S-15456-6.png

Мы можем добавить пару ключ - значение в словарь.

S-15456-7.png

Для этого мы явно указываем, что в словаре d по ключу 'c' мы помещаем значение 42. После этой операции данные будут добавлены в словарь и к ним можно будет обратиться по ключу. Если ключ отсутствует в словаре возникнет ошибка.

S-15456-8.png

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

S-15456-9.png

Элементы словаря можно удалять. Для этого используется функцию del. При этом данные удаляются целиком (и пара, и значение).

S-15456-10.png

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

Step 2 (S-15456) 1.png

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

S-15456-11.png

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