Найти тему

Python. Основы синтаксиса. Словарь. Часть 4.

В этой статье мы разберем такой тип данных как - словарь.

Словарь - это упорядоченная коллекция произвольных объектов с доступом по ключу. Ещё словарь называют ассоциативным массивом или хэш таблицей. Словарь является изменяемым типом данных.

Данные в словаре хранятся парой.

{ключ : значение}

Ключ - это ссылка на данные, которые хранятся в словаре.

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

Значение - это то, что мы положили в ячейку под определённым ключом.

Значением ключа может быть любой тип данных: строка, число, список или другой словарь и тд.

ВАЖНО: Два элемента не могут иметь один и тот же ключ.

Давайте разберемся как создаются словари. Чтобы создать словарь используются фигурные скобки {} и в них записываются пара: ключ-значение.

Создадим словарь и выведем данные в консоль программы.

Листинг 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.

Если я что-то упустил, то напишите об этом в комментариях.

Другие статьи канала:

Изучаю язык программирования Python. Основы синтаксиса. Списки. Часть 2.
Изучаю языки програмирования8 марта 2023