Курс Python → Defaultdict в Python

Defaultdict в Python отличается от обычного словаря тем, что позволяет нам указать значение по умолчанию для любого ключа, который отсутствует в словаре. В отличие от обычного словаря, где попытка обратиться к несуществующему ключу приведет к ошибке KeyError, defaultdict автоматически создаст элемент с указанным значением по умолчанию.

Для создания defaultdict необходимо импортировать его из модуля collections. Синтаксис использования defaultdict следующий: defaultdict(default_factory). Здесь default_factory — это функция, которая будет возвращать значение по умолчанию для отсутствующего ключа.

from collections import defaultdict

# Пример использования defaultdict
d = defaultdict(int)
print(d['key'])  # Выведет 0, так как int() возвращает 0 по умолчанию

При обращении к отсутствующему ключу defaultdict будет вызывать функцию default_factory и возвращать ее результат. Это позволяет избежать ошибок KeyError и упрощает работу с отсутствующими ключами в словаре. Например, если мы хотим подсчитать количество вхождений каждого элемента в списке, defaultdict будет очень полезен.

from collections import defaultdict

# Пример использования defaultdict для подсчета элементов в списке
lst = ['a', 'b', 'a', 'c', 'b', 'a']
d = defaultdict(int)
for item in lst:
    d[item] += 1

print(d)  # Выведет {'a': 3, 'b': 2, 'c': 1}

Таким образом, defaultdict является удобным инструментом для работы с словарями в Python, особенно когда необходимо обрабатывать отсутствующие ключи. Он позволяет избежать ошибок KeyError и упрощает написание кода, делая его более читаемым и эффективным.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Создание коллекций из выражения-генератора
  2. Работа с итераторами через срезы
  3. Solidity для DeFi Ethereum
  4. Символ подчеркивания в Python
  5. Работа с комплексными числами
  6. Функция enumerate() — Python
  7. Имена объектов в Python
  8. Вычисление логарифмов в Python
  9. Экранирование символов в Python
  10. Работа с переменными в Python
  11. Добавление кнопки в tkinter
  12. Получение текущей даты и времени
  13. Генераторы списков в Python
  14. Конкатенация строковых литералов
  15. Сравнение строк в Python
  16. Разделение функций на этапы
  17. Копирование списков в Python
  18. Метод classmethod
  19. Сравнение def и lambda функций в Python
  20. Отображение графиков в Jupyter с Matplotlib
  21. Фильтрация элементов с помощью islice
  22. Профилирование данных с Pandas
  23. Оболочка Python
  24. Область видимости переменных
  25. Переворот строки с использованием цикла
  26. Вывод баннеров
  27. F-строки в Python 3.8
  28. Хеширование паролей с использованием salt
  29. Частичное совпадение пользовательского ввода в Python 3.10
  30. Удаление эмодзи с помощью pandas
  31. Преобразование списка в словарь через генератор
  32. Нахождение самого длинного слова в списке с помощью max
  33. Управление асинхронными задачами с помощью Semaphore
  34. Работа с массивами в Numpy
  35. Удаление знаков препинания в Python
  36. Работа с NumPy.linalg
  37. Установка библиотек в Python
  38. Избегайте двойного подчеркивания
  39. Использование super() в Python
  40. Определение индекса элемента списка
  41. Обработка аргументов Python
  42. Оптимизация гиперпараметров с Scikit Optimize
  43. Тест скорости набора текста на Python
  44. Метод сравнения объектов в Python

Marketello читают маркетологи из крутых компаний