Ich habe das Gefühl, dass ich kürzlich einen Weg gesehen habe, dies zu tun. Angenommen, ich habe ein leeres Diktat und möchte einen Wert in ein verschachteltes Diktat in diesem leeren Diktat setzen, aber offensichtlich wurde das verschachtelte Diktat noch nicht erstellt. Gibt es eine 1-zeilige Möglichkeit, die Zwischenschlüssel zu erstellen? Das möchte ich tun:
%Vor%Wenn Sie diesen Code ausführen, erhalten Sie eine KeyError-Ausnahme für 'foo'. Gibt es eine Funktion zum Erstellen von Zwischenschlüsseln?
Danke.
Eine alternative Option ist - abhängig von Ihrer Verwendung - die Verwendung von Tupeln als Schlüssel anstelle von verschachtelten Wörterbüchern:
%Vor%Das funktioniert ganz gut, es sei denn, Sie möchten zu jedem Zeitpunkt einen Zweig des Baumes bekommen (Sie können in diesem Fall nicht mydict ['foo'] erhalten).
Wenn Sie wissen, wie viele Verschachtelungsebenen Sie verwenden möchten, können Sie auch functools.partial
Einige Leute finden es besser lesbar und können Instanzen schneller erstellen als die äquivalente lambda-basierte Lösung:
%Vor%Obwohl es wie immer keine Punkte gibt, die optimieren, bis Sie wissen, dass es einen Flaschenhals gibt, wählen Sie also das, was am nützlichsten und lesbar ist, bevor Sie am schnellsten sind.
Tags und Links python dictionary