Im folgenden Code:Wie defaultdict Variable ohne seinen Typ drucken?
from collections import defaultdict
confusion_proba_dict = defaultdict(float)
for i in xrange(10):
confusion_proba_dict[i] = i + 10
print confusion_proba_dict
Ausgang ist:
defaultdict(<type 'float'>, {0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19})
Aber ich Ausgang sein müssen:
{0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19}
Wie kann ich es tun?
Warum brauchen Sie die Ausgabe? Sie könnten einfach 'dict' auf Ihrem defaultdict-Ergebnis' confusion_proba_dict' aufrufen, um zu bekommen, was Sie wollen: 'dict (confusion_proba_dict)'. Aber ich denke immer noch, dass das übertrieben und nicht notwendig ist. – idjaw
Sie profitieren nicht von der 'defaultdict' Klasse in Ihrem Code. In der Tat werden die Werte in 'confusion_proba_dict' nach der Ausführung der 'for'-Schleife zu Integer-Werten, da die 'float'-Factory-Funktion niemals aufgerufen wird. Erstellen Sie einfach ein normales Wörterbuch mit 'confusion_proba_dict = {i: float (i) + 10 für i in Bereich (10)}'. Das Ergebnis ist {0: 10.0, 1: 11.0, 2: 12.0, 3: 13.0, 4: 14.0, 5: 15.0, 6: 16.0, 7: 17.0, 8: 18.0, 9: 19.0} und es wird Machen Sie das ganze Problem über das Drucken 'defaultdict' verschwinden. – martineau
@martineau Wenn du es so machst, brauchst du nicht den expliziten Aufruf von float, '{i: i + 10.0 für i in range (10)}' arbeite mit der impliziten Typkonvertierung – Copperfield