Rekursive Tiefe von python-dictionary

G ' Day,

Ich bin auf der Suche nach der rekursiven Tiefe einer Funktion, die Schleppnetze ein Wörterbuch, und ich bin ein bisschen verloren...
Derzeit habe ich so etwas wie:

myDict = {'leve1_key1': {'level2_key1': {'level3_key1': {'level4_key_1': {'level5_key1':   'level5_value1'}}}}}

Und ich möchte wissen, wie verschachtelt die verschachtelten dictionary ist... so habe ich das folgende tun...

def dict_depth(d, depth):

    for i in d.keys():
        if type(d[i]) is dict:
            newDict = d[i]
            dict_depth(newDict, depth+1)
    return depth

print dict_depth(myDict, 0)

Problem ist nur, das die rekursive Schleife gibt nur die Rückkehr der Letzte Wert (0).
wenn ich in einer print-Anweisung
for i in d.keys(): dann kann ich zumindest drucken der höchste Wert der Rekursion, aber der Rückgabe Wert ist ein anderes Thema...

Ich bin sicher, dies ist einfach - ich habe nur jellybrain.

Cheers

  • Sie werden nicht finden, jede Grenze die hier (außer für den verfügbaren Speicher). Jede verschachtelte Wörterbuch ist ein neues Objekt, das weiß, nichts über seine Eltern.
  • Aber Ihr code möglicherweise ausgeführt wird, in einen stack-überlauf. Dies hat nichts zu tun mit irgendeiner Wörterbuch Grenzen.
InformationsquelleAutor MandMBen | 2012-03-02
Schreibe einen Kommentar