with print how dictionaries create accessing python nested hashmap defaultdict

how - print dictionary python



Python, doble defecto predeterminado de autoenumeraciĆ³n (2)

Para optimizar algunos códigos, estoy usando lo siguiente:

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

Ahora mi problema es que necesitaría un incumplimiento predeterminado anidado, es decir,

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

Gracias por adelantado...


Si alguna vez quieres hacer una clase:

class CountDict(defaultdict): def __init__(self): defaultdict.__init__(self, self.default_factory) def default_factory(self): sub = defaultdict() sub.default_factory = sub.__len__ return sub

Normalmente no puedes hacer esto en una lambda porque necesitas asignar el dict predeterminado del niño a una variable para poder obtener su len luego, lo que no es posible en lambdas. @Duncan se le ocurrió una solución utilizando la lista de comprensión para actuar como asignación. Buen trabajo :) pero no lo uses ...: D


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