У меня есть вложенный кортеж, возвращаемый из MySQL cursor.fetchall(), содержащий некоторые результаты в форме (datetime.date, float). Мне нужно разделить их на вложенный словарь формы [месяц/год][день месяца], поэтому я хотел бы иметь показания словаря (скажем), на которые я бы ссылался как < em>readings['12/2011'][13], чтобы получить показания на 13-й день месяца '12/2011'. Это делается с целью создания графиков, показывающих наложенные ежедневные показания за несколько месяцев.
Моя трудность в том, что (я считаю) мне нужно настроить первое измерение словаря с уникальными идентификаторами месяца/года. В настоящее время я получаю список из них через:
list(set(["%02d/%04d" % (z[0].month, z[0].year) for z in raw]))
где raw — это список кортежей, возвращенных из базы данных.
Теперь я могу легко сделать это как двухэтапный процесс: настроить первое измерение словаря, затем еще раз просмотреть данные, чтобы настроить второе. Однако мне было интересно, есть ли удобочитаемый способ выполнить оба шага одновременно, возможно, с вложенными пониманиями словаря/списка.
Буду благодарен за любой совет. Спасибо.
'2011-12'
даже если вы не собираетесь их сортировать? - person John Machin   schedule 11.02.2012