使用空numpy数组创建defaultdict

ippsafx7  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(93)

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

oug3syen

oug3syen1#

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

from collections import defaultdict
from functools import partial

defaultdict(partial(numpy.ndarray, 0))

字符串
defaultdict() * 总是 * 需要一个可调用函数,而numpy.ndarray() * 总是 * 需要至少一个参数,所以这里不能只传入numpy.ndarray

rpppsulh

rpppsulh2#

另一种方法是,如果你事先知道数组的大小:

new_dict = defaultdict(lambda: numpy.zeros(array_size))

字符串

相关问题