В следующем коде:Как печатать переменную defaultdict без ее типа?
from collections import defaultdict
confusion_proba_dict = defaultdict(float)
for i in xrange(10):
confusion_proba_dict[i] = i + 10
print confusion_proba_dict
Выход:
defaultdict(<type 'float'>, {0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19})
Но, мне нужно выход быть:
{0: 10, 1: 11, 2: 12, 3: 13, 4: 14, 5: 15, 6: 16, 7: 17, 8: 18, 9: 19}
Как я могу это сделать?
Зачем вам нужен вывод? Вы можете просто вызвать 'dict' в свой результат defaultdict' confusion_proba_dict', чтобы получить то, что вы хотите: 'dict (confusion_proba_dict)'. Но я все еще думаю, что это чрезмерно и не нужно. – idjaw
Вы не пользуетесь классом 'defaultdict' в своем коде. Фактически значения в 'confusion_proba_dict' в конечном итоге будут целыми значениями после выполнения цикла' for', поскольку фабричная функция 'float' никогда не вызывается. Просто создайте обычный словарь, используя 'confusion_proba_dict = {i: float (i) + 10 для i в диапазоне (10)}'. Результатом будет «{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}», и это будет все дело в том, что печать 'defaultdict' исчезает. – martineau
@martineau, если вы так делаете, вам не нужно явно обращаться к float, '{i: i + 10.0 для i в диапазоне (10)}' работать одинаково с преобразованием неявного типа – Copperfield