Понимание словаря Python (с примерами)

Узнайте все о генераторах словарей в Python, включая создание словарей, использование условных операторов (if-else) и как вкладывать генераторы с помощью простых шагов и примеров!

Оглавление

Что такое словари (dicts) в Python?

Словари (или dicts) в Python - это неупорядоченные коллекции элементов. В отличие от других составных типов данных (таких как списки или кортежи), содержащих только значение в качестве элемента, словарь содержит пару ключ:значение в качестве своего элемента.

Словари позволяют вам легко извлекать значения, когда вы знаете ключ.

Если вы хотите узнать всё, что нужно знать о словарях в Python, ознакомьтесь с подробным руководством по словарям на сайте Real Python

Как создать словарь Python?

Чтобы создать словарь в Python, достаточно поместить элементы в фигурные скобки, разделив их запятой.

Давайте создадим словарь для книги "Гарри Поттер и Философский камень":

Как получить доступ к элементам из словаря Python?

В отличие от других типов контейнеров, которые используют индексацию, словари используют ключи. Ключи можно использовать либо внутри квадратных скобок, либо с помощью метода get().

Метод get() возвращает значение None вместо KeyError, когда ключ не найден.

Что такое словарь Python?

Словарные включения в Python - это краткие способы создания словарей без использования циклов for.

Если вы хотите узнать больше о циклах For в Python, ознакомьтесь с нашим полным руководством

Они похожи на списковые включения в Python. Однако вместо создания списков они создают словари.

Зачем использовать понимание Python Dict?

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

Каждое понимание словаря может быть записано в виде цикла for (но не каждый цикл for может быть записан как понимание словаря).

Циклы for, однако, могут быть длинными и сложными для понимания.

Поскольку они обычно значительно короче циклов for, использование списковых включений делает код более питоническим.

Словарные включения в Python направлены на то, чтобы сделать код более читаемым, избегая при этом необходимости писать явный цикл for.

Как написать словарь на Python?

Аналогично генераторам списков в Python, генераторы словарей следуют приведенному ниже шаблону:

Давайте рассмотрим это немного подробнее:

  • key:value относится к паре ключ-значение, которую вы хотите создать

  • Ключ и значение могут совпадать и относиться к одному и тому же значению.

  • vars относится к переменной в итерируемом объекте

  • iterable относится к любому объекту Python, по которому можно выполнить итерацию (например, список, кортеж или строка)

Давайте попробуем простой пример:

Пример понимания словаря: создание квадратов чисел

Представьте, что вам поручено создать словарь чисел от 1 до 5, где:

  • Ключом является оригинальный номер, и

  • Значение представляет собой исходное число, возведенное в квадрат.

Мы могли бы написать следующий код:

Это возвращает следующий словарь:

Пример понимания словаря: переход от килограммов к фунтам

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

Это возвращает следующий результат:

Как добавить условия (операторы if-else) в словарь Python?

В большинстве кодов условия используются как решения проблем. Понимание словарей в Python становится ещё более мощным, когда мы добавляем к ним условия, такие как операторы if и if

Добавление операторов IF в выражения Python Dict

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

Это возвращает:

Давайте посмотрим, как это написано:

Утверждение IF следует за элемент итерации.

Добавление нескольких операторов IF

Если мы хотим добавить несколько условных операторов if (похоже на вложенный условный оператор if в цикле for), мы просто объединяем их вместе.

Например, если мы хотим отфильтровать наш список возрастов, чтобы включить только людей младше 25 лет и тех, кто имеет четный возраст (где возраст по модулю 2 возвращает 0), мы могли бы написать:

Это возвращает следующее:

Чтобы добавить больше условных операторов if, их следует записывать последовательно.

Совет: Цепочка из условий if эквивалентна созданию условия AND.

Понимание словарей в Python с использованием конструкций If Else

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

Это возвращает следующее:

Структура здесь немного отличается. Оператор IF-ELSE применяется непосредственно к значению и помещается в скобки. Он используется для преобразования значения, а не для удаления пары ключ-значение, в данном случае.

Понимание вложенного словаря в Python

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

Допустим, нам нужен словарь, содержащий ключи со значениями от 1 до 5, и каждое значение представляет собой другой словарь, содержащий ключ, умноженный на интервалы 10 от 10 до 50.

Это можно сделать, написав следующее:

Это возвращает следующее:

Вложенные генераторы словарей могут быть сложными для понимания, поэтому не беспокойтесь, если вы не полностью поняли этот пример!

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

Как вы используете функцию перечисления с словарями Python?

Функция enumerate в Python полезна для определения индекса элемента в списке, кортеже или строке.

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

Давайте попробуем это на примере. Создадим список элементов и можем создать словарь, который определяет индекс каждого элемента.

Пример понимания словаря: использование функции перечисления

Это возвращает следующее:

Это особенно полезно, если мы хотим узнать индекс элемента. Тогда мы можем просто использовать ранее изученный метод get() для получения индекса.

Если мы хотели бы поменять местами ключ и значение так, чтобы сначала шёл номер индекса, мы могли бы написать:

Что возвращает следующее:

Примеры использования словаря Python

Извлечение подмножества словаря

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

Давайте рассмотрим пример. В приведенном ниже коде мы хотим извлечь a, b, c из большего словаря.

Это возвращает следующее:

Удаление элементов словаря

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

Это возвращает следующее:

Обратный ключ:значение в словаре

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

Давайте воспользуемся примером, чтобы продемонстрировать это:

Это возвращает следующее:

Предупреждения при использовании словаря Python

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

Помните, что читабельность в будущем важна!

Заключение

Поздравляем! Теперь вы знаете всё, что вам нужно знать о понимании словарей в Python! В этом посте вы узнали что такое словари, как писать выражения для создания словарей, добавление условий, вложенные выражения и рассмотрели несколько примеров.

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

Последнее обновление