Bemind
Учебник Python
Учебник Python
  • Python
    • Python Lists
      • Списковые включения в Python (Полное руководство с примерами)
      • Исправление ValueError: Слишком Много Значений Для Распаковки в Python
      • Как добавить словарь в список в Python
      • Как добавить строку в список в Python
      • Разница между массивами и списками в Python
      • Python: Различия между списками и кортежами
      • Как проверить, пуст ли список в Python
      • Как Итерировать (Циклически Проходить) По Списку в Python
      • Python List sort(): Подробное руководство по сортировке списков
      • Python List Extend: Как добавить несколько элементов в список
      • Python: Найти Индекс Всех Вхождений Элемента в Списке
      • Конвертация списка словарей в Pandas DataFrame
      • Генерация случайных чисел в Python
      • Поиск Индекса в Списке Python: Найти Первое, Последнее или Все Вхождения
      • Добавить в начало списка в Python (Вставить в начало)
      • Найти дубликаты в списке Python
      • Python: Умножение Списков (6 Различных Способов)
      • Python списки: Полный обзор
      • Python: Выбор случайного элемента из списка
      • 4 Способа Очистить Список в Python
      • Объяснение ошибки IndexError в Python: индекс списка выходит за пределы допустимого диапазона
      • Python: Получение индекса максимального элемента в списке
      • Python: Объединение списков – Слияние списков (8 способов)
      • Python: Проверка наличия элемента в списке
      • Python: Проверка наличия элемента в списке
      • Удаление элемента из списка в Python (pop, remove, del, clear)
      • Как перевернуть список в Python (6 способов)
      • Python: Замена элемента в списке (6 различных способов)
      • Python: Удаление дубликатов из списка (7 способов)
      • Python: Преобразование словаря в список кортежей (4 простых способа)
      • Python: Перемешать Список (Случайное Распределение Элементов Списка в Python)
      • Python: Пересечение двух списков
      • Python: Вычитание двух списков (4 простых способа!)
      • Длина или Размер Списка в Python: 5 Способов Узнать Длину Списка
      • Python: Транспонирование списка списков (5 простых способов!)
      • Python: Разделение списка (Пополам, на части)
      • Python: Комбинации списка (Получить все комбинации списка)
      • Python: Выравнивание списка списков (4 способа)
      • Разница между списками в Python: Нахождение разницы между двумя списками Python
      • Python: Найти среднее значение списка или списка списков
      • Как добавлять элементы в списки в Python – 4 простых способа!
      • Списковые включения в Python (Полное руководство с примерами)
      • 6 способов преобразовать список Python в строку
    • Python Dictionaries
      • Понимание словаря Python (с примерами)
      • Исправляем ValueError: Слишком Много Значений Для Распаковки в Python
      • Как добавить словарь в список в Python
      • Преобразование JSON в словарь Python
      • Полное руководство по вложенным словарям в Python
      • Копирование словаря в Python: Полное руководство
      • Конвертация списка словарей в Pandas DataFrame
      • Поиск дубликатов в списке Python
      • Полный обзор словарей в Python
      • Python: Добавление пары Ключ:Значение в Словарь
      • Python: Сортировка словаря по значениям
      • Слияние Словарей в Python – Комбинирование Словарей (7 Способов)
      • Python: Удаление Дубликатов из Списка (7 Способов)
      • Python: Преобразование словаря в список кортежей (4 простых способа)
      • Python: Красивая Печать Словаря (Dictionary) – 4 Способа
      • Python: Проверка пуст ли словарь (5 способов!)
      • Copy of Python: Проверка пуст ли словарь (5 способов!)
      • Python: Проверьте, существует ли ключ (или значение) в словаре (5 простых способов)
      • Python: Проверьте, существует ли ключ (или значение) в словаре (5 простых способов)
      • Python: Получение Ключа Словаря с Максимальным Значением (4 Способа)
      • Python: Удаление ключа из словаря (4 разных способа)
      • Как красиво вывести JSON-файл в Python (6 методов)
    • Python Strings
      • Python Капитализация Строк: Руководство по Преобразованию слов в Заглавные
      • Python strip: Как обрезать строку в Python
      • Python Обратная Строка: Руководство по Реверсированию Строк
      • Как Удалить Префикс или Суффикс из Строки в Python
      • Преобразование строки в формат заголовка в Python с помощью str.title()
      • Как добавить строку в список в Python
      • Python String startswith: Проверка, начинается ли строка с подстроки
      • Python String endswith: Проверка того, заканчивается ли строка подстрокой
      • Как удалить первый или последний символ из строки в Python
      • Как исправить: SyntaxError в Python - EOL при сканировании строкового литерала
      • Python String Contains: Проверка Наличия Подстроки в Строке
      • Как проверить, пустая ли строка в Python
      • Python Новая Строка и Как Печатать Без Переноса Строки
      • Как Конкатенировать Строки в Python: Полное Руководство
      • Python: Подсчет слов в строке или файле
      • Как создать список алфавита в Python
      • Python: Конкатенация строки и целого числа (Int)
      • Python: Сортировка строки (4 различных способа)
      • Python zfill и rjust: Добавление нулей в строку в Python
      • Python: Целое в Двоичное (Преобразование целого числа в двоичную строку)
      • Python rfind: Нахождение индекса последней подстроки в строке
      • Python SHA256 хеширование алгоритм: объяснение
      • Python: Усечение числа с плавающей точкой (6 различных способов)
      • Выбор между методами Python isdigit(), isnumeric() и isdecimal()
      • Python: Удаление специальных символов из строки
      • Python Приведение Строки к Нижнему Регистру с помощью .lower(), .casefold(), и .islower()
      • Python программа для проверки, является ли строка палиндромом (6 методов)
      • Python: Найдите все перестановки строки (3 легких способа!)
      • Python: Удаление пунктуации из строки (3 разных способа!)
      • Python: Найти индекс (или все индексы) подстроки в строке
      • Python: Удаление символов новой строки из строки
      • Python: Удаление символа из строки (4 способа)
      • Python: Количество вхождений в строке (4 способа!)
    • Встроенные функции Python
      • abs()
      • ascii()
      • aiter()
      • all()
      • any()
      • anext()
      • bin()
      • bool()
      • breakpoint()
      • bytearray()
      • bytes()
      • callable()
      • chr()
      • classmethod()
      • compile()
      • complex()
      • delattr()
      • dict()
      • dir()
      • divmod()
      • enumerate()
      • eval()
      • exec()
      • filter()
      • float()
      • format()
      • frozenset()
      • getattr()
      • globals()
      • hasattr()
      • hash()
      • help()
      • hex()
      • id()
      • input()
      • int()
      • issubclass()
      • iter()
      • len()
      • list()
      • locals()
      • map()
      • max()
      • memoryview()
      • min()
      • next()
      • object()
      • oct()
      • open()
      • ord()
      • pow()
      • print()
      • property()
      • range()
      • repr()
      • reversed()
      • round()
      • set()
      • setattr()
      • isinstance()
      • slice()
      • zip()
      • type()
      • sorted()
      • staticmethod()
      • str()
      • sum()
      • super()
      • tuple()
      • vars()
      • import()
    • Cобеседования Python. Разбор реальных вопросов.
    • Встроенные методы в Python
  • Учебники по Pandas и Numpy
    • Numpy
      • Функция активации ReLU для глубокого обучения: полное руководство по выпрямленному линейному блоку
      • Как нормализовать массивы NumPy (минимальное-максимальное масштабирование, Z-оценка, L2)
      • NumPy where: Условная обработка элементов массива
      • NumPy linspace: создание равномерно расположенных массивов с помощью np.linspace
      • Как рассчитать векторное произведение в Python
      • Разделение NumPy: Разделение массива NumPy на части
      • NumPy: Лучшие способы применения функции к массиву
      • NumPy full: Создание массивов с заданным значением
      • NumPy clip(): Ограничьте значения массива минимальным и максимальным значениями
      • NumPy cumsum: Расчет кумулятивных сумм массивов NumPy
      • Изучаем функцию np.histogram в NumPy: создаем гистограмму
      • NumPy arange(): Полное руководство (с примерами)
      • Руководство по индексации и срезам массивов NumPy: Полное руководство
      • NumPy argmin(): Получение индекса минимального значения в массивах
      • Выравнивание массива с помощью NumPy flatten
      • Объединение массивов NumPy по различным осям с использованием функции stack
      • Удаление размерности из массивов NumPy с помощью NumPy Squeeze
      • Функция np.repeat() NumPy: Повторение массивов NumPy
      • Использование функции NumPy.exp() для вычисления экспоненты
      • Реализация функции сигмоида на Python
      • NumPy Pad: Использование np.pad() для дополнения массивов и матриц
      • np.argmax(): Как использовать NumPy Argmax
      • NumPy logspace: Понимание функции np.logspace()
      • Использование NumPy Tile для Расположения Массивов
      • NumPy Zeros: Создание массивов и матриц с нулями в NumPy
      • Использование числа Пи в Python (NumPy и Math)
      • Распределение Нормального (Гауссова) Распределения в Numpy (Случайное Нормальное в Numpy)
      • NumPy для Data Science на Python
      • Расчет скалярного произведения с использованием Numpy в Python
      • Расчет натурального логарифма на Python
    • Pandas
      • Python сводные таблицы – Полное руководство
      • Изучение API стиля Pandas
      • Объяснение группировки по нескольким столбцам в Pandas с примерами
      • Удаление индексной колонки DataFrame в Pandas: Руководство с примерами
      • Pandas Quantile: Расчет процентилей в DataFrame
      • Как рассчитать скользящее среднее (среднее арифметическое) в Pandas
      • Руководство по использованию метода fillna в Pandas для работы с отсутствующими данными в DataFrame
      • Pandas unique(): Получение уникальных значений в DataFrame
      • Распакуйте Ваши Данные с Помощью Функции Melt в Pandas
      • Pandas date_range: Как Создать Диапазон Дат в Pandas
      • Сброс индекса в Pandas: как сбросить индекс в Pandas
      • Pandas replace() – Замена значений в DataFrame Pandas
      • Перемещение столбца DataFrame Pandas на позицию (В начало и в конец)
      • Учебное пособие по Python Pandas: полное руководство
      • Pandas: Замена NaN на нули
      • Преобразование DataFrame Pandas в файл Pickle
      • Конвертация Pandas DataFrame в JSON
      • Преобразование DataFrame Pandas в Словарь
      • Преобразование Pandas DataFrame в Список
      • Чтение файлов Parquet в Pandas с помощью pd.read_parquet
      • Pandas dropna(): Удаление отсутствующих записей и столбцов в DataFrame
      • Как Добавить Новый Столбец в DataFrame Pandas
      • Подсчёт уникальных значений в Pandas
      • Отображение всех столбцов и строк в DataFrame Pandas
      • Pandas to_excel: Запись DataFrames в файлы Excel
      • Как использовать Pandas для чтения файлов Excel в Python
      • Преобразование списка словарей в Pandas DataFrame
      • Как добавить/вставить строку в DataFrame Pandas
      • Диаграмма рассеяния в Pandas: Как создать диаграмму рассеяния в Pandas
      • Pandas to_datetime: Преобразование строки Pandas в дату и время
      • Введение в Pandas для Data Science
      • Индексация, Выборка и Присваивание Данных в Pandas
      • Суммирование и Анализ Pandas DataFrame
      • Преобразование столбцов Pandas с помощью map и apply
      • Группировка данных в Pandas с использованием cut и qcut
      • Дата и время в Pandas и Python
      • Очистка и подготовка данных в Pandas и Python
      • Pandas GroupBy: группировка, суммирование и агрегация данных в Python
      • Pandas Дата и Время в Части Даты (месяц, год и т.д.)
      • Pandas: Получение номера строки из DataFrame
      • Вычисление Взвешенного Среднего в Pandas и Python
      • Как перемешать строки Pandas Dataframe в Python
      • Pandas: количество столбцов (подсчет столбцов в DataFrame)
      • Pandas Sum: сложение столбцов и строк DataFrame
      • Pandas Diff: Вычисление Разницы Между Строками Pandas
      • Нормализация столбца или датафрейма Pandas (с использованием Pandas или sklearn)
      • Функция Rank в Pandas: Ранжирование данных в Dataframe (Эквивалент SQL row_number)
      • Pandas Describe: Описательная статистика вашего Dataframe
      • Pandas Shift: Перемещение столбца DataFrame вверх или вниз
      • 7 Способов Выполнения Выборки Данных в Pandas
      • Экспорт DataFrame Pandas в CSV файл – Использование .to_csv()
      • Pandas: Итерация по строкам DataFrame в Pandas
      • Pandas: Преобразование значений столбца в строки
      • Дисперсия в Pandas: Вычисление дисперсии столбца в Pandas Dataframe
      • Pandas: Создание DataFrame из списков (5 способов!)
      • Pandas Rename Index: Как переименовать индекс DataFrame в Pandas
      • Pandas: Подсчёт уникальных значений в объекте GroupBy
      • Pandas: Добавить дни к колонке с датами
      • Среднее в Pandas: Как рассчитать среднее для одной или нескольких колонок
      • Pandas Column to List – Конвертируйте колонку Pandas в список
      • Транспонирование Dataframe в Pandas
      • Python: Разделение DataFrame Pandas
      • Как получить имена столбцов в DataFrame Pandas
      • Pandas: Количество строк в DataFrame (6 способов)
      • Создание пустого DataFrame Pandas и добавление данных
      • Как переименовать столбцы в Pandas DataFrame (с примерами)
      • Изменение порядка столбцов в Pandas: использование метода reindex и метода insert
      • Pandas get_dummies (One-Hot кодирование), объяснение
      • Относительные и Абсолютные Частоты в Python и Pandas
      • Финансовый год – Определение финансового года в Pandas
      • Как сортировать данные в DataFrame Pandas
  • Учебники Matplotlib и Seaborn
    • Seaborn
      • Регрессионные графики в Seaborn с использованием regplot и lmplot
      • Seaborn residplot – Построение остатков линейной регрессии
      • Seaborn jointplot() – Создание совместных графиков в Seaborn
      • Seaborn displot – Распределенческие графики в Python
      • Seaborn ecdfplot – Эмпирические функции накопленного распределения
      • Seaborn rugplot – Визуализация маргинальных распределений
      • Seaborn kdeplot – Создание графиков оценки плотности ядра
      • Seaborn histplot – Создание Гистограмм в Seaborn
      • Seaborn catplot – Визуализация категориальных данных в Python
      • Средняя тенденция для категориальных данных в Seaborn Pointplot
      • Seaborn stripplot: Jitter Plots для распределений категориальных данных
      • Seaborn Countplot – Подсчет категориальных данных в Python
      • Seaborn swarmplot: Bee Swarm Plots для распределения категориальных данных
      • Скрипичные графики Seaborn в Python: Полное руководство
      • Настройка расположения легенд Seaborn, меток, текста и т.д.
      • Тепловая карта Seaborn: Полное руководство
      • Создание многосекционных сеток в Seaborn с помощью FacetGrid
      • Удаление рамки в Seaborn: Как работать с рамкой
      • Заголовки и метки осей в Seaborn: добавление и настройка
      • Как установить Seaborn в Python (Исправление: no module named seaborn)
      • Seaborn relplot – Создание точечных и линейных графиков
      • Полное руководство по созданию точечных диаграмм (scatter plots) в Python с использованием Seaborn
    • Matplotlib
      • Режим Retina в Matplotlib: Улучшение Качества Графиков
      • Как построить функцию в Python с использованием Matplotlib
      • Как создать 3D-диаграммы рассеяния в Matplotlib
      • Как изменить размер шрифта в графике Matplotlib
      • Установка размера маркера в точечных диаграммах Matplotlib
      • Как изменить размер графика и фигуры в Matplotlib
      • Как добавить названия в Matplotlib: Заголовок, Подзаголовок, Названия Осей
      • Pandas Scatter Plot: Как создать диаграмму рассеяния в Pandas
      • Построение графиков в Python с помощью Matplotlib
      • Диаграммы рассеяния Matplotlib – Все, что вам нужно знать
      • Диаграммы с столбцами в Matplotlib – Узнайте все, что вам нужно знать
      • Линейные диаграммы Matplotlib – Всё, что вам нужно знать
      • Построение гистограммы в Python с Matplotlib и Pandas
  • Алгоритмы
    • Алгоритм поиска в ширину (BFS) в Python
    • Алгоритм поиска в глубину (DFS) на Python
  • AI создает хедж-фонд для анализа акций на Python
Powered by GitBook
On this page
  • Что такое словари (dicts) в Python?
  • Что такое словарь Python?
  • Зачем использовать понимание Python Dict?
  • Как написать словарь на Python?
  • Как добавить условия (операторы if-else) в словарь Python?
  • Понимание вложенного словаря в Python
  • Как вы используете функцию перечисления с словарями Python?
  • Примеры использования словаря Python
  • Предупреждения при использовании словаря Python
  • Заключение
  1. Python
  2. Python Dictionaries

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

PreviousPython DictionariesNextИсправляем ValueError: Слишком Много Значений Для Распаковки в Python

Last updated 1 year ago

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

Оглавление

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

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

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

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

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

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

hp = {
    'title': "Harry Potter and the Philosopher's Stone",
    'author': "J.K. Rowling",
    'publication': '1988-06-26'
}

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

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

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

print(hp['title'])
#Output: Harry Potter and the Philosopher's Stone

print(hp.get('publication'))
#Output: 1988-06-26

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

squares = {i:i**2 for i in [1,2,3,4,5]}
print(squares)

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

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

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

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

old_weights = {
    'book': 0.5,
    'milk': 2.0,
    'tv': 7.0
}
new_weights = {key: value*2.2 for (key, value) in old_weights.items()}
print(new_weights)

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

{'book': 1.1, 'milk': 4.4, 'tv': 15.4}

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

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

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

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

ages = {
    'kevin': 12,
    'marcus': 9,
    'evan': 31,
    'nik': 31
}
new_ages = {key:value for (key, value) in ages.items() if value > 25}
print(new_ages)

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

{'evan': 31, 'nik': 31}

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

dict = {k:v for var in iterable if condition}

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

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

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

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

ages = {
    'kevin': 12,
    'marcus': 9,
    'evan': 31,
    'nik': 31
}
younger = {key:value for (key, value) in ages.items() if value < 25 if value % 2 == 0}
print(younger)

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

{'kevin': 12}

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

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

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

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

ages = {
    'kevin': 12,
    'marcus': 9,
    'evan': 31,
    'nik': 31
}
oddeven = {key:('odd' if value % 2 == 1 else 'even') for (key, value) in ages.items()}
print(oddeven)

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

{'kevin': 'even', 'marcus': 'odd', 'evan': 'odd', 'nik': 'odd'}

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

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

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

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

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

mutiples = {
    key1: {
        key2: key1 * key2 
        for key2 in range(1, 6)
        } 
    for key1 in range(10, 60, 10)
}
print(mutiples)

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

{
    10: {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}, 
    20: {1: 20, 2: 40, 3: 60, 4: 80, 5: 100}, 
    30: {1: 30, 2: 60, 3: 90, 4: 120, 5: 150}, 
    40: {1: 40, 2: 80, 3: 120, 4: 160, 5: 200}, 
    50: {1: 50, 2: 100, 3: 150, 4: 200, 5: 250}
}

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

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

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

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

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

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

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

names = ['Harry', 'Hermione', 'Ron', 'Neville', 'Luna']
index = {k:v for (k, v) in enumerate(names)}
print(index)

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

{'Harry': 0, 'Hermione': 1, 'Ron': 2, 'Neville': 3, 'Luna': 4}

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

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

names = ['Harry', 'Hermione', 'Ron', 'Neville', 'Luna']
index = {k:v for (v, k) in enumerate(names)}
print(index)

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

{0: 'Harry', 1: 'Hermione', 2: 'Ron', 3: 'Neville', 4: 'Luna'}

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

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

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

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

bigdict = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
smalldict = {k: bigdict[k] for k in ('a', 'b', 'c')}
print(smalldict)

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

{'a': 1, 'b': 2, 'c': 3}

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

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

ages = {
    'kevin': 12,
    'marcus': 9,
    'evan': 31,
    'nik': 31
}
ages = {key:ages[key] for key in ages.keys() - {'marcus', 'nik'}}
print(ages)

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

{'evan': 31, 'kevin': 12}

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

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

dictionary = {'key1': 'value1', 'key2':'value2'}
dictionary = {value:key for (key,value) in dictionary.items()}

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

user = {
    'name': 'nik',
    'age': 31,
    'company': 'datagy'
}

user_reversed = {v: k for (k, v) in user.items()}
print(user_reversed)

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

{'nik': 'name', 31: 'age', 'datagy': 'company'}

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

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

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

Заключение

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

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

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

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

подробным руководством по словарям на сайте Real Python
полным руководством
Что такое словари (dicts) в Python?
Как создать словарь Python?
Как получить доступ к элементам из словаря Python?
Что такое словарь Python?
Зачем использовать понимание Python Dict?
Как написать словарь на Python?
Пример понимания словаря: создание квадратов чисел
Пример понимания словаря: переход от килограммов к фунтам
Как добавить условия (операторы if-else) в словарь Python?
Добавление операторов IF в выражениях Python Dict
Добавление нескольких операторов IF
Понимание слов на Python с использованием конструкций If Else
Понимание вложенного словаря в Python
Как вы используете функцию перечисления с словарями Python?
Пример словаря понимания: использование функции перечисления
Примеры использования словаря Python
Удаление элементов словаря
Обратный ключ:значение в словаре
Предупреждения при использовании словаря Python
Заключение