Search code examples
pythonnestedhashmapdefaultdict

Python, double autoenumerated defaultdict


To optimize some code, I am using the following:

a = defaultdict(lambda: len(a))
a[0] = 0
a[1] = 1
a[7] = 2
...

Now my problem is that I would need a nested defaultdict, i.e.

b = defaultdict(lambda: defaultdict(lambda: len(b[?]))
b[0][0] = 0
b[0][1] = 1
b[1][0] = 0
b[1][1] = 1
...

Thanks in advance...


Solution

  • def enumdict():
        a = defaultdict(lambda : len(a))
        return a
    
    b = defaultdict(enumdict)