使用空 numpy 数组创建默认字典

问题描述 投票:0回答:2

我想知道是否有更聪明的方法来从集合创建默认字典。 字典应该有一个空的 numpy ndarray 作为默认值。

迄今为止我最好的成绩:

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

但是,我想知道是否有可能跳过 lambda 项并以更直接的方式创建字典。喜欢:

d = collections.defaultdict(numpy.ndarray(0))  # <- Nice and short - but not callable
python numpy collections defaultdict
2个回答
24
投票

您可以使用

functools.partial()
代替 lambda:

from collections import defaultdict
from functools import partial

defaultdict(partial(numpy.ndarray, 0))

always需要一个

defaultdict()
的可调用对象,而
numpy.ndarray()
always需要至少一个参数,所以你不能只在这里传入
numpy.ndarray


2
投票

如果您事先知道数组大小,另一种方法如下:

new_dict = defaultdict(lambda: numpy.zeros(array_size))
© www.soinside.com 2019 - 2024. All rights reserved.