Wie kann ich eine Zeichenfolge teilen und ein verschachteltes Wörterbuch mit mehreren Ebenen bilden?

8

Ich habe eine Zeichenfolge wie

%Vor%

Ich habe auch val=1 zum Beispiel. Gibt es eine saubere Möglichkeit, das foo/bar/baz in ein mehrdimensionales Diktat aufzuteilen, wobei das letzte Element im dict gleich 1 ist. Es würde also aussehen wie

%Vor%     
Mike 09.05.2015, 03:28
quelle

2 Antworten

7

Sie können reduce und reversed Funktionen, wie diese

%Vor%

Wenn Sie Python 3.x verwenden, müssen Sie reduce von% importieren. co_de%

%Vor%

Hier ist das letzte Argument von functools der Startwert. Es werden Werte nacheinander aus dem iterablen übergeben, rufen Sie die Funktion mit dem Ergebnis und dem aktuellen Wert und dann das nächste Mal wird das letzte Ergebnis das erste Argument und der aktuelle Wert als zweites Argument sein. Wenn das iterable erschöpft ist, wird das Ergebnis zurückgegeben.

Also wäre die Ausführung Schritt für Schritt gegangen, wie folgt

Nehmen wir an, reduce ist die Lambda-Funktion und wird wiederholt wie folgt aufgerufen

%Vor%     
thefourtheye 09.05.2015, 03:31
quelle
2
%Vor%

Wenn dies erweitert werden muss, um so etwas wie eine Verzeichnisstruktur zu erstellen, möchten Sie vielleicht eine Lösung basierend auf defaultdict :

%Vor%

Demo:

%Vor%     
user2357112 09.05.2015 03:34
quelle

Tags und Links