Я использую pprint
, чтобы красиво распечатать dict
, и он отлично работает. Теперь я переключаюсь на использование OrderedDict
с модуля collections
. К сожалению, маршрутизация pprint
, похоже, не признает, что такие объекты больше или меньше dict
с, и возвращается к печати в виде длинной строки.pretty-printing OrderedDicts using pprint
>>> d = { i:'*'*i for i in range(8) }
>>> pprint.pprint(d)
{0: '',
1: '*',
2: '**',
3: '***',
4: '****',
5: '*****',
6: '******',
7: '*******'}
>>> pprint.pprint(collections.OrderedDict(d))
OrderedDict([(0, ''), (1, '*'), (2, '**'), (3, '***'), (4, '****'), (5, '*****'), (6, '******'), (7, '*******')])
Любой путь, чтобы получить более хорошее представление OrderedDict
s, а? Может быть, даже если они вложены внутри a нормальный dict
или list
?
Да, хорошо, ладно. Затем это выглядит как список кортежей, а не как 'dict'. Я надеялся на представление, которое по-прежнему выглядело как дикт (и, возможно, просто проигнорировало тот факт, что это было упорядоченное). – Alfe
Я думаю, вы даже можете разбить «список» вокруг этих 'd.items()'. Но я все еще удивляюсь, почему у 'pprint' даже есть такая проблема с' OrderedDict'; ведь они наследуют 'dict'. – Alfe
Ах, я думал, что это неважно, было ли это в списке на основе «Может быть, даже если они вложены внутри нормального диктата или списка?» – misakm