В этой статье мы разберем такой тип данных как - словарь.
Словарь - это упорядоченная коллекция произвольных объектов с доступом по ключу. Ещё словарь называют ассоциативным массивом или хэш таблицей. Словарь является изменяемым типом данных.
Данные в словаре хранятся парой.
{ключ : значение}
Ключ - это ссылка на данные, которые хранятся в словаре.
Ключом может быть любой неизменяемый тип данных: строка, число булевый типа и др.
Значение - это то, что мы положили в ячейку под определённым ключом.
Значением ключа может быть любой тип данных: строка, число, список или другой словарь и тд.
ВАЖНО: Два элемента не могут иметь один и тот же ключ.
Давайте разберемся как создаются словари. Чтобы создать словарь используются фигурные скобки {} и в них записываются пара: ключ-значение.
Создадим словарь и выведем данные в консоль программы.
Листинг 1
# Создаем переменную словаря
dictionary = {"Ключ":"Значение ключа"}
# Выводим в консоль
print(dictionary)
Вывод: {'Ключ': 'Значение ключа'}
Мы можем добавить в словарь новые данные.
Листинг 2
# Создаем переменную словаря
dictionary = {"Ключ": "Значение ключа"}
# Добавляем новые данные в словарь
dictionary["Лёха"] = "Гусь"
print(dictionary)
Вывод: {'Ключ': 'Значение ключа', 'Лёха': 'Гусь'}
Также можно изменять значение, на которое ссылается ключ.
Листинг 3
# Создаем переменную словаря
dictionary = {"Ключ": "Значение ключа"}
# Добавляем новые данные в словарь
dictionary["Лёха"] = "Гусь"
print(dictionary)
Вывод: {'Ключ': 'Значение ключа', 'Лёха': 'Гусь'}
# Изменим значение ключа Лёха
dictionary["Лёха"] = "Гусь-утка"
print(dictionary)
Вывод: {'Ключ': 'Значение ключа', 'Лёха': 'Гусь-утка'}
Также можно удалить из словаря пару ключ-значение.
Листинг 4
# Создаем переменную словаря
dictionary = {"Ключ": "Значение ключа"}
# Добавляем новые данные в словарь
dictionary["Лёха"] = "Гусь"
print(dictionary)
Вывод: {'Ключ': 'Значение ключа', 'Лёха': 'Гусь'}
# Изменить значение ключа Лёха
dictionary["Лёха"] = "Гусь-утка"
print(dictionary)
Вывод: {'Ключ': 'Значение ключа', 'Лёха': 'Гусь-утка'}
# Удаляем из словаря пару с ключом Лёха
# Для этого нам поможет метод del
del dictionary["Лёха"]
print(dictionary)
Вывод: {'Ключ': 'Значение ключа'}
Добавление, измение, удаление это всё хорошо, но как же получить значение на которое ссылается ключ? Вспоминаем статью про списки, там мы писали название переменной списка открывали квадратные [] скобки и указывали индекс, который нам надо. С словарями процесс такой же, только вместо индекса мы будем использовать ключ.
Листинг 5
# Создаем переменную словаря
dictionary = {"Ключ": "Значение ключа"}
# Добавляем новые данные в словарь
dictionary["Лёха"] = "Гусь"
# Получим значение, на которое ссылается ключ Лёха
value = dictionary["Лёха"]
print(value)
Вывод: Гусь
Как видно из листинга 5, по ключу "Лёха" получили значение, на которое этот ключ ссылается и вывели его в консоль программы.
Для большего понимания напишем программу.
Пользователь будет сам вводить ключ и если такой ключ есть в словаре, то мы выводим значение на экран, если нет, то запрашиваем у пользователя значение ключа и добавляем в словарь.
Листинг 6
# Создаем переменную словаря
dictionary = {}
# Реализуем цикл
while True:
# Запросим у пользователя ключ, по которому он хочет получить значение
key = input("Укажите ключ по которому вы хотите получить значение: ")
# Если ничего не ввели, то сообщаем об об ошибки и запрашиваем заново
if key == "":
print("Ключ пустой, повторите попытку")
continue
# Проверяем есть ли такой ключ в нашем словаре, если нет, то запрашиваем значение этого ключа
if key not in dictionary:
value = input("Ключ не обнаружен в словаре, укажите значение ключа: ")
# Добавляем новую запись в словарь
dictionary[key] = value
else:
# Если нашли ключ, то выводим значение
value = dictionary[key]
print(f"Значение: {value}")
Вывод:
Укажите ключ по которому вы хотите получить значение:
Ключ пустой, повторите попытку
Укажите ключ по которому вы хотите получить значение: cat
Ключ не обнаружен в словаре, укажите значение ключа: Кошка
Укажите ключ по которому вы хотите получить значение: dog
Ключ не обнаружен в словаре, укажите значение ключа: Собака
Укажите ключ по которому вы хотите получить значение: cat
Значение: Кошка
Укажите ключ по которому вы хотите получить значение: dog
Значение: Собака
Укажите ключ по которому вы хотите получить значение:
Мы реализовали алгоритм, который работает с пользователем и записывает, новые значения в словарь и выводим значение по ключу.
В следующей статье мы разберем: как работать с такими метода как keys и values.
Если я что-то упустил, то напишите об этом в комментариях.
Другие статьи канала: