我想知道是否有更聪明的方法可以从集合中创建默认字典。 dict应该有一个空的numpy ndarray作为默认值。
到目前为止,我的最好结果是:
import collections
d = collections.defaultdict(lambda: numpy.ndarray(0))
但是,我想知道是否有可能跳过lambda术语并以更直接的方式创建dict。喜欢:
d = collections.defaultdict(numpy.ndarray(0)) # <- Nice and short - but not callable
答案 0 :(得分:13)
您可以使用functools.partial()
代替lambda:
from collections import defaultdict
from functools import partial
defaultdict(partial(numpy.ndarray, 0))
总是需要defaultdict()
的可调用者,numpy.ndarray()
总是至少需要一个参数,所以你不能只传入{{ 1}}这里。