使用list和int创建元组的defaultdict

时间:2016-11-04 22:10:21

标签: python-3.x defaultdict

我知道使用默认值创建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正确处理这种情况吗?

1 个答案:

答案 0 :(得分:1)

如果您希望能够这样做:

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主要用作(因为它们是不可变的,因此 hashable ),而不是 >,您可以存储任何您想要的东西,可以随意使用。