我知道使用默认值创建defaultdict
,我可以使用以下内容:
defaultdict(lambda : 0)
并且对于具有默认值的元组的defaultdict,我可以使用以下内容:
defaultdict(lambda: (0,0))
但我正在努力解决这个问题,如何使用列表和int创建一个defaultdict
元组?我需要这样的东西:
{key1:['a','b','c','a'],100),key2:(['a','a','a','a'],2100),(key3:['adds','bas','cs','a'],300),key4:(['a'],30)}
所以我需要检查列表中的项目,如果它不存在,我需要增加int值。我的想法是使用defaultdict
正确处理这种情况吗?
答案 0 :(得分:1)
如果您希望能够这样做:
d["some_key"][1] += 1
即使密钥不存在并将[set(),1]
作为值,也可以执行以下操作:
d = collections.defaultdict(lambda : [set(),0])
defaultdict(lambda : 0)
对于defaultdict(int)
list
而不是tuple
作为默认值。如果我使用tuple
,我会很难将第二项增加1,因为元组是只读的。
注意#3:tuple
主要用作键(因为它们是不可变的,因此 hashable ),而不是值 >,您可以存储任何您想要的东西,可以随意使用。