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