需要一个值为两个列表的 defaultdict

在 Python 中,我想要类似的东西

dict = defaultdict((list,list))

本质上,每个键我都想要两个列表!

使用上面的代码片段,我得到错误第一个参数必须是可调用的。我怎样才能做到这一点?


白板的微信
浏览 181回答 2
2回答

当年话下

作为参数提供给defaultdict创建空列表的函数:from collections import defaultdictdef pair_of_lists():&nbsp; &nbsp; 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]]})

拉莫斯之舞

它不是某种类型推断,您只是提供一个生成默认值的函数。While int, list,dict没有参数 generate 0, [], {},这在 defaultdict 声明中经常被利用。Python 没有内置的构造函数用于列表对等。所以它很简单di = defaultdict(lambda : ([1,2,3], ['a', 'cb']))虽然 Python 允许列表元组(对),但您可能会遇到一些问题,例如列表元组的散列。为了安全起见,您可以将默认设置为两个列表的列表。请注意,您已将其设置为特定列表,无论是否为空,而不是列表类型/构造函数。它实际上是关于设置默认值而不是类型声明——python 列表是无类型的。from collections import defaultdictl1 = []l2 = ["another", "default", "list"]di = defaultdict(lambda : [ l1, l2] )print (di[3])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python