1

我试图将 d = defaultdict(array.array) 或 d = defaultdict(list) 用于字典,但我不知道如何将 array.array 或列表中的元素数固定为 N 其中 N 是数组的大小我总是希望 list 或 array.array 成为。如果可能,我希望将列表的所有 N 个元素预初始化为零。

4

2 回答 2

5

to 的参数defaultdict()是创建默认值的可调用对象,因此只需创建一个创建起始值的函数:

N = 8  # change N to whatever you want
def default_list():
    return [0] * N

d = defaultdict(default_list)

或作为 lambda:

d = defaultdict(lambda: [0] * N)
于 2013-01-28T05:35:50.853 回答
2

您传递defaultdict一个返回值的函数,因此只需给它一个返回适当大小的列表或数组的函数。例如:

def make_list_of_10_zeroes():
    return [0] * 10

d = defaultdict(make_list_of_10_zeroes)

由于我们在这里使用的函数只有一个语句 a return,因此我们可以使用lambda代替:

d = defaultdict(lambda: [0] * 10)
于 2013-01-28T05:33:51.617 回答