Создание defaultdict с пустым массивом numpy

Мне интересно, есть ли более умный способ создания дефолтного дефолта из коллекций. В качестве значения по умолчанию для dict должен быть пустой ndarray.

Мой лучший результат пока:

import collections d = collections.defaultdict(lambda: numpy.ndarray(0)) 

Тем не менее, мне интересно, есть ли возможность пропустить лямбда-термин и создать дикт более прямым образом. Подобно:

 d = collections.defaultdict(numpy.ndarray(0)) # <- Nice and short - but not callable 

Вы можете использовать functools.partial() вместо лямбда:

 from collections import defaultdict from functools import partial defaultdict(partial(numpy.ndarray, 0)) 

Вам всегда нужно defaultdict() для defaultdict() , а numpy.ndarray() всегда требуется хотя бы один аргумент, поэтому вы не можете просто передать здесь numpy.ndarray здесь.