2017-04-13 3 views
2

Ich arbeite mit einem ziemlich großen und inkonsistent Wörterbuch, aber für Beispiele können aus Gründen sagen, ich habeHolen Lage Wert in Nested Wörterbuch

d = {'a' : 
     {'b' : 
      {'c' : 
       {'one' : 1}, 
      'd' : 
       {'two' : 2}} 

     }, 
    'e' : 
     {'three' : 3}, 
    'four' : 4 

    } 

Ich versuche, einen Weg zu finden, die bekommen Orte der Ganzzahlen. Damit meine ich 1 wäre ['one', 'c', 'b', 'a'], 2 wäre ['two', 'd', 'b', 'a] `etc ...

Für das Leben von mir kann ich das nicht herausfinden. Ich würde lieber keinen Ort Wörterbuch ({1 : ['one', 'c', 'b', 'a'], 2 : ['two', 'd', 'b', 'a]} `) erstellen, aber stattdessen würde ich nach einem Wert suchen und dann seinen relativen Standort zurückgeben wollen. Dies liegt daran, dass das eigentliche Wörterbuch, mit dem ich arbeite, sehr groß ist (mehrere Megabyte).

Kann jemand Einblick geben?

+0

In dem Fall, wo mehrere "1" sind, versuchen Sie, das erste Vorkommen oder alle zu finden? –

+0

Es gibt nicht mehrere '1's, die Werte sind vollständig eindeutig. Im eigentlichen Wörterbuch sind sie große Listen. Ich habe das Beispiel ganz einfach gemacht, um die Frage zu vereinfachen. – aseylys

+0

Nun, wenn die tatsächlichen Werte Listen sind, dann wäre es nicht möglich, ein Standortverzeichnis mit der Liste als Schlüssel zu erstellen. Gibt es etwas über den Pfad, nach dem Sie suchen müssen? Wollten Sie die Liste genau abgleichen? Wenn ja, warum brauchen Sie einen Standortpfad, wenn Sie die Liste haben, sonst haben Sie versucht, eine Teilübereinstimmung zu erreichen? –

Antwort

0

sondern würde ich für einen Wert gesucht werden soll und dann wieder es ist relative Lage

Sie können einen Breadth-first_search oder Tiefensuche Algorithmus den Wert zu suchen, implementieren.

Verwandte Themen