Ordenar un OrderedDict anidado por clave, de forma recursiva
Decirorig
es unOrderedDict
que contiene una cadena normal: pares de valores de clave de cadena, pero a veces el valor podría ser otro, anidadoOrderedDict
.
Quiero ordenarorig
por clave, alfabéticamente (ascendente), y hazlorecursivamente.
Reglas:
Suponga que las cadenas de teclas son impredeciblesSuponga que la anidación puede tener lugar infinitamente, p. todos los niveles 1-50 tienen ambas cadenas, OrderedDicts, etc. como valores.Necesito ayuda con elsorted
algoritmo:
import string
from random import choice
orig = OrderedDict((
('a', choice(string.digits)),
('b', choice(string.digits)),
('c', choice(string.digits)),
('special', OrderedDict((
('a', choice(string.digits)),
('b', choice(string.digits)),
('c', choice(string.digits)),
)))
))
sorted_copy = OrderedDict(sorted(orig.iteritems(), ...))
self.assertEqual(orig, sorted_copy)