2 回答

TA贡献1890条经验 获得超9个赞
作为参数提供给defaultdict创建空列表的函数:
from collections import defaultdict
def pair_of_lists():
return [[], []]
d = defaultdict(pair_of_lists)
d[1][0].append(3)
d[1][1].append(42)
print(d)
# defaultdict(<function pair_of_lists at 0x7f584a40b0d0>, {1: [[3], [42]]})

TA贡献1820条经验 获得超10个赞
它不是某种类型推断,您只是提供一个生成默认值的函数。While int, list,dict没有参数 generate 0, [], {},这在 defaultdict 声明中经常被利用。Python 没有内置的构造函数用于列表对等。所以它很简单
di = defaultdict(lambda : ([1,2,3], ['a', 'cb']))
虽然 Python 允许列表元组(对),但您可能会遇到一些问题,例如列表元组的散列。为了安全起见,您可以将默认设置为两个列表的列表。请注意,您已将其设置为特定列表,无论是否为空,而不是列表类型/构造函数。它实际上是关于设置默认值而不是类型声明——python 列表是无类型的。
from collections import defaultdict
l1 = []
l2 = ["another", "default", "list"]
di = defaultdict(lambda : [ l1, l2] )
print (di[3])
添加回答
举报