Вот текущая структура данных, которая у меня есть:
{'bin1': {'A': 14545,
'B': 18579,
'C': 5880,
'D': 20771,
'E': 404396},
'bin2': {'A': 13200,
'B': 12279,
'C': 5000,
'D': 16766,
'E': 200344},
[...] }
И я хотел бы написать в таблицу в форме:
A B C D E
bin1 14545 18579 5880 20771 494396
bin2 13200 12279 5000 16766 200344
...
В настоящее время я использую грубый цикл печати (где d == словарь, описанный выше):
# print the table header
labs = [i for i in d[d.keys()[0]]]
print "bin" + "\t" + "\t".join(labs)
# loop and print the values
for j in d:
print j + "\t" + "\t".join(map(str, [d[j][q] for q in d[j]]))
Что, казалось, работало (несмотря на то, что оно явно неупорядочено), однако в моем выводе я обнаружил, что некоторые вложенные словари не содержат все поля AE. Я предполагаю, что один из способов сделать это - перестроить словарь, возможно, используя более подходящую структуру данных матричного типа, и заполнить недостающие значения с помощью 0
, но, учитывая, что у меня есть этот огромный вложенный словарь, есть ли более разумный способ печати вывод, показанный выше, который может обрабатывать отсутствующие элементы?