Home > front end >  Defaultdict not returning default values
Defaultdict not returning default values

Time:01-23

d1 = defaultdict(lambda : defaultdict(lambda : defaultdict (lambda : 0)))
d1['first']['second'] = 2 #Assigning some value
d1['first']['third']   #Expecting to return the default value, which is 0, but ...
defaultdict(<function <lambda>.<locals>.<lambda>.<locals>.<lambda> at 0x7ff5765421e0>, {})

Why is this not returning 0 ?

CodePudding user response:

Because there are three levels of defaultdicts until you reach the value 0, so you need to do:

>>> d1['first']['second']['third']
0

CodePudding user response:

You have 3 levels of defaultdict. So to get the default value you need 3 indexes.

print(d1[1][2][3])
  •  Tags:  
  • Related