Рубрики
Без рубрики

Использование defaultdict в Python

Перекресток размещен из блога Rakesh Словари – это отличный удобный способ хранения и извлечения данных B … с меткой Python, defaultdict, учебник.

Крест опубликован Блог рекешка

Словари – это отличный удобный способ хранения и извлечения данных по имени в Python.

>>> mydict = { 'first_name' : 'Rakesh', 'last_name': 'Gautam' }
>>> print(mydict['first_name'])
Rakesh
>>> print(mydict['last_name'])
Gautam

Но если вы попытаетесь получить товар с ключом, который в настоящее время не в словаре, обычный словарь Python поднимает KeyError исключение.

>>> print(mydict['middle_name'])
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'middle_name'

Хотя это легко обрабатывать вручную, defaultdict Упрощает эту задачу.

Defaultdict Работает точно так же, как обычный Python Дикт С Но он инициализируется функцией, которая не имеет аргументации и обеспечивает значение по умолчанию для несуществующего ключа.

Defaultdict Никогда не вызывает KeyError исключение. Если какой-либо ключ не существует, его значение возвращается по умолчанию.

Defaultdict является частью Python’s Коллекции упаковка.

>>> from collections import defaultdict

>>> mydict = { 'first_name' : 'Rakesh', 'last_name': 'Gautam' }
>>> def_dict = defaultdict(str, mydict)
>>> print(def_dict['first_name'])
Rakesh
>>> print(def_dict['middle_name'])

>>>

Здесь это не подняло никаких KeyError Исключение, потому что мы прошли ул как аргумент для по умолчанию .

def_dict Возвращает "" (Значение по умолчанию для строки) здесь, если мы передаем несуществующий ключ в качестве аргумента.

>>> my_dict = {'a' : 10, 'b': 20, 'c':30}

>>> dict_2 = defaultdict(lambda : 0, my_dict)
>>> print(dict_2['x'])
0

Вот, мы прошли лямбда: 0 Как функция для defaultdict, и это вернет 0. всякий раз, когда мы просим несуществующий ключ.

Мы можем использовать любую функцию, которая не требует аргумента, в по умолчанию . Если кто-то пытается получить доступ к ключу, к которому не было назначено значение, эта функция будет вызываться (без аргументов), и его возвращаемое значение используется в качестве значения по умолчанию для ключа.

Оригинал: “https://dev.to/rkshrksh/using-defaultdict-in-python-2on3”