Ich versuche ein Wörterbuch aus den Werten im name_num
Wörterbuch zu erstellen, wobei die Länge der Liste der neue Schlüssel ist und der name_num
Wörterbuchschlüssel und Wert der Wert sind. Also:
Ich möchte das folgende Wörterbuch erstellen:
%Vor%Ich habe viele Variationen ausprobiert, aber dieser Code bringt mich am nächsten:
%Vor%Ausgabe:
%Vor%Ich weiß, dass ich den Code irgendwie durchschleifen muss, damit ich die anderen Werte zu Schlüssel 3 hinzufügen kann.
Dictionary , assoziative Array oder Map (viele Namen, im Grunde die gleiche Funktionalität) Eigenschaft ist, dass Schlüssel einzigartig sind / p>
Die Schlüssel, die Sie haben möchten, die ganze Zahlen sind, sind nicht einzigartig, wenn Längen gleich sind, deshalb funktioniert Ihr Code nicht. Wenn Sie einen neuen Wert für den vorhandenen Schlüssel eingeben, müssen Sie den alten Wert ersetzen.
Sie müssen den vorhandenen Wertwörterbüchern Schlüssel / Wert-Paare hinzufügen.
%Vor%sollte den Trick machen
Dies ist ein guter Anwendungsfall für defaultdict
:
Ausgabe :
%Vor% Nur eine Alternative zu anderen; Sie können nach Länge sortieren und itertools.groupby
verwenden:
In einem Worst-Case-Szenario, in dem jede innere Liste eine andere Länge hat, führt dies O(n^2)
aus, was im Vergleich zu anderen oben genannten Lösungen ziemlich ineffizient ist.
Tags und Links python dictionary