使用列表和 int 创建元组的 defaultdict

Creating a defaultdict of a tuple with a list and int

我知道用默认值创建一个 defaultdict,我可以使用下面的:

defaultdict(lambda : 0)

对于具有默认值的元组的 defaultdict,我可以使用以下内容:

defaultdict(lambda: (0,0))

但我正在努力解决这个问题,我该如何创建一个 defaultdict 元组,其中包含一个列表和一个整数?我需要类似的东西:

{key1:['a','b','c','a'],100),key2:(['a','a','a','a'],2100),(key3:['adds','bas','cs','a'],300),key4:(['a'],30)}

所以我需要检查列表中的项目,如果不存在,我需要增加 int 值。我使用 defaultdict 解决这种情况的想法是否正确?

如果您希望能够做到这一点:

d["some_key"][1] += 1

即使键不存在并获取 [set(),1] 作为值然后执行:

d = collections.defaultdict(lambda : [set(),0])
  • 注意 #1:defaultdict(lambda : 0)defaultdict(int)
  • 来说太过分了
  • 注意#2:我使用 list 而不是 tuple 作为默认值。如果我使用 tuple,我将很难将第二项增加 1,因为元组是只读的。 注意 #3:tuple 主要用作 keys(因为它们是不可变的,因此 hashable),而不是 values,您可以在其中存储任何您想要的内容,无论是否可散列。