Erstellen von Wörterbuchschlüsseln im laufenden Betrieb [duplizieren]

8

Wenn ich mit tief verschachtelten Python-Dicts arbeite, würde ich gerne in der Lage sein, Werte in einer solchen Datenstruktur wie folgt zuzuordnen:

%Vor%

ohne prüfen zu müssen, ob mydict [key] etc. tatsächlich als dict, z. mit

%Vor%

Die Erstellung von Unterverzeichnissen sollte im laufenden Betrieb erfolgen. Was ist der eleganteste Weg, um etwas Äquivalent zu ermöglichen - vielleicht mit Dekoratoren auf dem Standard <type 'dict'> ?

    
relet 04.08.2010, 11:34
quelle

3 Antworten

20
%Vor%     
John La Rooy 04.08.2010, 11:43
quelle
9

Sie könnten ein Tupel als Schlüssel für das Diktat verwenden und dann brauchen Sie sich überhaupt keine Gedanken über Unterdossiers zu machen:

%Vor%

Wenn Sie aus irgendeinem Grund wirklich Subdictionaries benötigen, können Sie collections.defaultdict .

Für zwei Ebenen ist das einfach:

%Vor%

Für drei ist es etwas komplexer:

%Vor%

Vier und mehr Ebenen sind als Übung für den Leser übrig. : -)

    
Dave Webb 04.08.2010 11:37
quelle
2

Ich mag Daves Antwort besser, aber hier ist eine Alternative.

%Vor%

Ссылка

Es ist definitiv nicht schön, lambdas zu verwenden, um die internen Standardkollektionen zu implementieren, aber anscheinend notwendig.

    
I82Much 04.08.2010 11:44
quelle

Tags und Links