使用空的numpy数组创建一个defaultdict

时间:2014-07-29 11:33:02

标签: python numpy collections defaultdict

我想知道是否有更聪明的方法可以从集合中创建默认字典。 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

1 个答案:

答案 0 :(得分:13)

您可以使用functools.partial()代替lambda:

from collections import defaultdict
from functools import partial

defaultdict(partial(numpy.ndarray, 0))

总是需要defaultdict()的可调用者,numpy.ndarray() 总是至少需要一个参数,所以你不能只传入{{ 1}}这里。