Подтвердить что ты не робот

Установка значения строки по умолчанию для Python collections.defaultdict

Я использую Python 3.2.3 и хочу изменить значение возвращаемой строки по умолчанию:

from collections import defaultdict
d=defaultdict(str)
d["NonExistent"]

Возвращаемое значение ''. Как это изменить, чтобы, когда ключ не найден, вместо пустой строки возвращается "unknown"?

4b9b3361

Ответ 1

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

>>> from collections import defaultdict
>>> d = defaultdict(lambda: 'My default')
>>> d['junk']
'My default'

Отредактировано для объяснения лямбда:

lambda - это просто сокращение для определения функции без указания имени. Вы можете сделать то же самое с явным def:

>>> def myDefault():
...     return 'My default'
>>>> d = defaultdict(myDefault)
>>> d['junk']
'My default'

Подробнее см. документацию.