Rekursives Sortieren eines verschachtelten OrderedDict nach Schlüssel
Sagenorig
ist einOrderedDict
Das enthält normale String: String-Schlüsselwertpaare, aber manchmal kann der Wert auch ein anderer sein, der verschachtelt istOrderedDict
.
Ich möchte sortierenorig
mit der Taste, alphabetisch (aufsteigend), und machen Sie esrekursiv.
Regeln:
Angenommen, die Tastenkombinationen sind nicht vorhersehbarAngenommen, die Verschachtelung kann unendlich erfolgen, z. Level 1-50 haben beide Strings, OrderedDicts, etc. als Werte.Benötigen Sie eine Unterstützung bei dersorted
Algorithmus:
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)