I'm wondering if there's a more clever way to create a default dict from collections. The dict should have an empty numpy ndarray as default value.
My best result is so far:
import collections
d = collections.defaultdict(lambda: numpy.ndarray(0))
However, i'm wondering if there's a possibility to skip the lambda term and create the dict in a more direct way. Like:
d = collections.defaultdict(numpy.ndarray(0))  # <- Nice and short - but not callable
                You can use functools.partial() instead of a lambda:
from collections import defaultdict
from functools import partial
defaultdict(partial(numpy.ndarray, 0))
You always need a callable for defaultdict(), and numpy.ndarray() always needs at least one argument, so you cannot just pass in numpy.ndarray here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With