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)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage