使用列表和 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,您可以在其中存储任何您想要的内容,无论是否可散列。
我知道用默认值创建一个 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,您可以在其中存储任何您想要的内容,无论是否可散列。