Крест опубликован Блог рекешка
Словари – это отличный удобный способ хранения и извлечения данных по имени в 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”