TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #3611 2.94K
Простыми словами: defaultdict в Python

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

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

Рассмотрим простой пример, в котором мы создаем словарь с ключами и списками в качестве значений.

from collections import defaultdict

# Обычный словарь для сравнения
regular_dict = {}

# defaultdict с list в качестве значения по умолчанию
default_dict = defaultdict(list)

# Работа с обычным словарем
key = 'fruits'
if key not in regular_dict:
regular_dict[key] = []
regular_dict[key].append('apple')

# Работа с defaultdict
default_dict[key].append('banana')

print("Обычный словарь:", regular_dict)
# Результат: Обычный словарь: {'fruits': ['apple']}

print("defaultdict:", default_dict)
# Результат: defaultdict(<class 'list'>, {'fruits': ['banana']})


Как это работает?

1. Мы создаем defaultdict, указывая, что значением по умолчанию будет список (list). Это значит, что если ключ отсутствует, то для него автоматически создается пустой список.

2. Когда мы добавляем banana в default_dict под ключом fruits, defaultdict автоматически создает новый список для этого ключа, если он ещё не существует, и добавляет в него элемент.

Вы также можете использовать любую возвращаемую функцию для создания значений по умолчанию. Например, использовать int() для создания словаря, где 0 будет значением по умолчанию:

# defaultdict с int в качестве значения по умолчанию
int_default_dict = defaultdict(int)

int_default_dict['count'] += 1 # Прибавляем единицу к несуществующему ключу
print(int_default_dict) # Результат: defaultdict(<class 'int'>, {'count': 1})


У defaultdict есть ряд преимуществ, которые стоит учитывать:

1. Устраняет необходимость проверки наличия ключа перед манипуляцией над ним.
2. Предотвращает ошибки, связанные с отсутствующими ключами.
3. Позволяет легко определять различные значения по умолчанию для различных типов данных.

Напишите в комментариях, какую тему вам хотелось бы разобрать ещё?

#простымисловами
  • ❤ 3
More from @zen_of_python
  1. Oct 3, 2026Как вернуть значение из всплывающего окна в форму Django Admin Django Admin умеет создават…
  2. Oct 2, 2026Охрана трубопровода длиной 400 километров Камеры на столбах не заглянут за угол, дрон виси…
  3. Oct 1, 2026Как не сломать pickle собственным исключением Python Если конструктор исключения принимает…
  4. Oct 1, 2026Как выстроить защиту цепочки поставок Python Эшелонированная схема защиты начинается с соб…
  5. Sep 30, 2026Пакетная обработка в Python: где strict=True не спасает запись С Python 3.12 itertools.bat…
  6. Sep 30, 2026Как воспроизводить гонки потоков Python с помощью blanket Обычно порядок выполнения потоко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →