Анализируя набор данных, основанный на файлах журналов, я хотел подсчитать количество вхождений различных элементов в разное время. Например, мне нужно было узнать, сколько раз в журнале продаж упоминались определённые продукты.
Чтобы упростить процесс подсчёта, я создал словарь, где каждому ключу соответствует значение по умолчанию — 0. Это позволило мне быстро и точно определить количество упоминаний каждого продукта.
Для инициализации словаря я использовал цикл for. В этом уроке я подробно описал, как работает этот метод. Кроме того, я рассказал о двух альтернативных подходах, которые вы можете выбрать.
Со значением по умолчанию
Словарь — это структура данных, которая хранит коллекцию значений в определённом формате. Обычно это формат «ключ: значение». Ключ — это элемент, который стоит перед двоеточием, а значение — элемент после двоеточия.
Например, вы можете представить реальную информацию в виде словаря. Допустим, у вас есть продукт с именем и ценой. Тогда вы можете использовать название продукта в качестве ключа, а его цену — в качестве значения. Например, {laptop:20000}. Каждый элемент словаря называется парой «ключ-значение».
Сейчас словарь содержит один элемент, но вы можете добавить несколько пар «ключ-значение». В этом случае он будет содержать несколько пар «ключ-значение».
Если вы удалите пару «ключ-значение» из словаря, он станет пустым. Пустой словарь обозначается фигурными скобками {}.
Как вы собираетесь добавить пару «ключ-значение», если у вас есть пустой словарь? Этот процесс называется инициализацией словаря значениями по умолчанию.
Инициализация словаря — это создание и вставка исходного значения ключа. Существует несколько методов инициализации словаря значениями по умолчанию, о которых я расскажу позже.
Используя {}
Чтобы создать словарь с помощью фигурных скобок, при его создании нужно указать пару «ключ-значение», как показано в коде ниже.
products ={"Laptop": "Electronics","Jeans": "Clothing", "Smartphone": "Electronics", "Sweater": "Clothing"} print(products)
Посмотрите на рисунок выше. На нём изображён новый словарь «продукты». Он создаётся и инициализируется значениями по умолчанию. В нём есть два элемента: название продукта и его тип. Например, имя продукта — «Ноутбук», а его тип — «Электронный».
При создании словаря с помощью фигурных скобок {} вы можете одновременно добавить несколько пар «ключ-значение».
С использованием функции dict()
В Python есть метод dict(), который позволяет создавать новый словарь. Он принимает пару «ключ-значение», которую вы указываете в фигурных скобках {}. Если не указать какое-либо ключевое значение, метод создаст пустой словарь.
Когда вы предоставляете значение, словарь создаётся и инициализируется на основе этой пары «ключ-значение».
Например, вы можете создать словарь для хранения информации о пользователе и задать ему значения по умолчанию. Посмотрите и запустите код ниже.
user = dict(username='jenny', age=30, email='[email protected]') print(user)
Посмотрите на рисунок выше. Вы предоставили пользователю информацию в виде пары «ключ-значение», которую метод dict() может использовать для создания нового словаря.
Метод dict() инициализирует словарь переданными значениями. В результате получается словарь со значениями: {‘username’: ‘jenny’, ‘age’: 30, ’email’: ‘[email protected]’}.
Чтобы создать и инициализировать словарь с помощью метода dict(), нужно передать ему пары ключ-значение.
С использованием цикла For
Вы даже можете инициализировать словарь с помощью цикла for, используя значение по умолчанию. Суть в том, что цикл будет перебирать другой список, брать из него значения и инициализировать пустой словарь.
Например, предположим, у вас есть список американских городов и ещё один список, где указаны соответствующие штаты, в которых находится каждый город. Вы хотите создать словарь в Python, где каждый город (ключ) будет указывать на свой штат (значение).
города = [‘Чикаго’, ‘Лос-Анджелес’, ‘Хьюстон’, ‘Финикс’, ‘Филадельфия’]
штаты = [‘Иллинойс’, ‘Калифорния’, ‘Техас’, ‘Аризона’, ‘Пенсильвания’]
city_with_state = {}
для меня в диапазоне(len(города)):
city_with_state[cities[i]] = штаты[i]
печать(city_with_state)
Посмотрите на результат: цикл инициализирует словарь city_with_state, используя список, в котором города и штаты представлены в виде пар ключ-значение.
Давайте разберёмся, как это работает. У нас есть два списка: один содержит названия городов, а другой — названия штатов. Города выступают в роли ключей, а штаты — в роли значений словаря.
Создаём пустой словарь с помощью кода city_with_state = {} (фигурные скобки означают создание пустого словаря). Затем, используя цикл «for i in range(len(cities))», проходим по списку городов.
В цикле «i» представляет индекс элемента списка. Используя этот индекс, мы берём первое значение из списка городов с помощью city[i] и передаём его в пустой словарь как city_with_stat[cities[i]]. Таким образом, мы создаём ключ для словаря.
Затем мы связываем значение с этим ключом, присваивая ему значение из списка штатов с помощью «=states[i]». Таким образом, на каждой итерации мы создаём новую пару ключ-значение в словаре.
На каждой итерации цикл берёт следующее значение из списка городов и следующее значение из списка штатов, создавая новую пару ключ-значение для словаря. В итоге, после завершения цикла, в словаре city_with_state будут храниться все пары ключ-значение из списка городов и штатов.
В результате создается и инициализируется новый словарь со значениями по умолчанию, например {‘Чикаго’: ‘Иллинойс’, ‘Лос-Анджелес’: ‘Калифорния’, ‘Хьюстон’: ‘Техас’, ‘Финикс’: ‘Аризона’, ‘Филадельфия’. ‘: ‘Пенсильвания’}.
Прежде чем закончить это руководство, я хочу объяснить, почему вы должны инициализировать словарь значениями по умолчанию.
- Избегание ошибок ключей. Предварительно инициализируя словарь с определенными ключами, мы можем предотвратить потенциальные исключения KeyError в Python при попытке доступа к ключам, которые могут отсутствовать при динамическом добавлении.
- Целостность данных. Инициализация словарей Python с помощью ключей и значений может служить документацией. Разработчик или пользователь, просматривая словарь, может мгновенно понять его предполагаемую структуру и тип данных, которые он должен хранить.
- Значения по умолчанию: когда мы инициализируем словарь Python с ключами и значениями, мы часто устанавливаем для этих ключей значения по умолчанию. Это может быть полезно в сценариях, где нам необходимо убедиться, что каждый ключ имеет некоторое начальное значение, которое затем можно обновить или изменить на основе последующих операций.