Python 3.x 创建具有列表和int的元组的defaultdict
我知道要使用默认值创建一个Python 3.x 创建具有列表和int的元组的defaultdict,python-3.x,defaultdict,Python 3.x,Defaultdict,我知道要使用默认值创建一个defaultdict,我可以使用以下选项: defaultdict(lambda : 0) 对于具有默认值的元组的defaultdict,我可以使用以下内容: defaultdict(lambda: (0,0)) 但我正在努力解决这个问题,如何创建一个包含列表和int的tuple的defaultdict?我需要像这样的东西: {key1:['a','b','c','a'],100),key2:(['a','a','a','a'],2100),(key3:['add
defaultdict
,我可以使用以下选项:
defaultdict(lambda : 0)
对于具有默认值的元组的defaultdict,我可以使用以下内容:
defaultdict(lambda: (0,0))
但我正在努力解决这个问题,如何创建一个包含列表和int的tuple的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:我使用了
而不是列表
作为默认值。如果我使用了元组
,我将很难将第二项增加1,因为元组是只读的。 注意#3:元组
主要用作键(因为它们是不可变的,因此是可散列的),而不是用作值,在值中可以存储任何需要的内容,无论是否可散列tuple
defaultdict(lambda:[],0])
?顺便说一句,defaultdict(lambda:0)
可以写入defaultdict(int)
。我无法理解您的问题。我使用了defaultdict(lambda:[],0])
,这正是我想要的。非常感谢你。这是一个好方法吗?正如我前面解释的,我需要根据列表中存在的不是元组的项来更新元组中的int值,顺便说一句,否则您将无法更新它。这是一张单子。方法是好的!我可以把defaultdict(lambda:[],0])
做成类似defaultdict(lambda:[set(),0])
的东西吗?是的,我现在注意到了!!这是一个列表而不是元组!!我的错!!很抱歉完全地这很有道理。非常感谢!!当有人能如此完美地解释事情时,一切都变得如此简单!!非常感谢。