Словари — это тип сбора данных, который является подкатегорией типов данных (например, массивов или списков и кортежей). Они используются для поиска значений — как в словаре в реальной жизни!

Словари в программировании состоят из «пар ключ-значение» — термина, который вы часто слышите. Каждый элемент в словаре состоит из двух компонентов: «ключ» и «значение» (ключ слева, значение справа). То есть пара ключа и значения. Отсюда — пары ключ-значение. Каждый ключ представляет собой уникальную метку, а значение — это связанная с ним информация.

Например:

{'волосы': 'блондинка',
'глаза': 2}

И так далее. Каждая пара ключ-значение разделяется двоеточием : и отделяется от следующей запятой , . В Python все они перечислены в фигурных скобках {}.

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

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

Значения изменчивы — их можно изменить. Думайте о них как о цене хлеба в магазине. Они также могут быть чем угодно — любым типом данных, включая набор данных, например список, или даже другой словарь!

Словари очень эффективны для поиска значений — например. возможно, вы работаете со словарем в своем коде под названием «статус»:

status = {
'голодный': правда,
'жаждущий': правда,
'настроение': 'грустный',
'съеденный': ['завтрак' , 'кофе']

Вы можете найти значение, относящееся к «голодному», и в результате получить True. И вы можете посмотреть, что у вас есть, как значение «съедено» и получить [«завтрак», «кофе»].

Если в процессе вашего кода вы обедаете, вы можете обновить поля в словаре «статус», чтобы отразить это, и когда вы снова просматриваете эти значения, вы можете увидеть, что значение «голодный» теперь обновлено до False и «съедено» в ['завтрак', 'кофе', 'обед'], потому что в вашем коде вы обновили эти значения.

Почему мы можем использовать словари в нашем коде? Очень полезно иметь возможность связывать значения с ключами и обновлять их по мере запуска и развития кода.

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

Этот пример Python устанавливает значения в вашем коде в зависимости от выбора пользователя без использования словарей:

если выбраноButton == «button1»:
FontColour = «green»

если выбраноButton == «button2»:
FontColour = «blue»

если выбраноButton == «button3»:
FontColour = «red»

если выбраноButton == «button4»:
fontColour = «pink»

если выбраноButton == «button5»:
FontColour = «фиолетовый»

если выбраноButton == «button6»:
FontColour = «black»

если выбраноButton == «button6»:
FontColour = «оранжевый»

print("fontcolour = ", FontColour)

вернуть шрифтЦвет

Согласно многочисленным условиям кода, если пользователь выбирает button2, результат будет следующим:

FontColour = синий

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

словарь = {
«button1» : «зеленый»,
«button2» : «синий»,
«button3» : «красный»,
«button4» : «розовый» ,
«button5» : «фиолетовый»,
«button6» : «черный»,
«button7» : «оранжевый»
}

если выбрана кнопка в словаре:
fontColour = словарь[selectedButton]
print("fontcolour = ", fontColour)

вернуть шрифтЦвет

Видите, насколько это проще и понятнее? Он более краток, поэтому его легче редактировать, работать с ним и дублировать. Он требует всего лишь одного условного решения компьютера, удобен и прост для понимания — как для человека, так и для машины. Даже на этом простом примере вы можете видеть, что словари очень мощные!

Итак, теперь вы знаете, что такое словарь, как им пользоваться и почему вам это может понадобиться. Что вы будете делать со словарями?