Classificando um OrderedDict aninhado por chave, recursivamente
Dizerorig
é umOrderedDict
que contém string normal: pares de valores de chave de string, mas às vezes o valor pode ser outro, aninhadoOrderedDict
.
Eu quero classificarorig
por chave, alfabeticamente (ascendente), e faça-orecursivamente.
Regras:
Suponha que as seqüências de teclas sejam imprevisíveisSuponha que o aninhamento possa ocorrer infinitamente, por exemplo todos os níveis 1 a 50 têm as duas strings, OrderedDicts, etc. como valores.Precisa de uma assistência com osorted
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)