So fügen Sie einem Schlüssel in einem Python-Wörterbuch mehrere Werte hinzu

7

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:

%Vor%

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.

    
Oedipus 29.08.2016, 01:07
quelle

3 Antworten

5

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

    
Jezor 29.08.2016, 01:15
quelle
22

Dies ist ein guter Anwendungsfall für defaultdict :

%Vor%

Ausgabe :

%Vor%     
Karin 29.08.2016 01:13
quelle
4

Nur eine Alternative zu anderen; Sie können nach Länge sortieren und itertools.groupby verwenden:

%Vor%

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.

    
ozgur 29.08.2016 01:34
quelle

Tags und Links