Способ рекурсивно установить значения для словаря

Запись вида foodict['foo.bar.baz'] требуется преобразовать в структуру с вложенными словарями. Чешете затылок?.. Есть элементарное решение.

Иногда удобно такое поведение:

foodict['foo.bar.baz'] = 'foo'
{
   'foo': {
      'bar': {
            'baz': 'foo'
         }
       }
   }
}

Для реализации отлично подходит инструмент defaultdict (наследуемый от dict класс), достаточно нескольких строчек кода:

>>> from collections import defaultdict
>>> infinite_defaultdict = lambda: defaultdict(infinite_defaultdict)
>>> d = infinite_defaultdict()
>>> d['foo']['bar']['baz'] = 'foo'
>>> d
defaultdict(<function <lambda> at 0x1040388c8>, {'foo': defaultdict(<function <lambda> at 0x1040388c8>, {'bar': defaultdict(<function <lambda> at 0x1040388c8>, {'baz': 'foo'})})})

Спасибо Raymond Hettinger.