Вы также можете использовать numpy для этого.Предполагая, что у вас есть:
dates = numpy.array([datetime(2012,02,03,12,00,00), datetime(2012,02,03,15,00,00), datetime(2012,02,03,13,00,00)])
values = numpy.array([[1, 1], [3, 3], [2, 2]])
Сначала вы можете сделать:
unified = numpy.concatenate((dates.reshape(len(dates), 1), values), axis=1)
Это объединит два списка, что, учитывая то, что вы хотите, должно быть более подходящим способом хранения ваших данных.тем не мение.Итак, теперь у вас есть:
unified = array([[2012-02-03 12:00:00, 1, 1],
[2012-02-03 15:00:00, 3, 3],
[2012-02-03 13:00:00, 2, 2]], dtype=object)
Теперь вы можете сделать:
unified = numpy.sort(unified, axis=0)
Это будет сортировать по дате.Теперь, если вам все еще нужны только отдельные списки, вы можете получить их с помощью:
unified[:, 0]
>>> array([2012-02-03 12:00:00, 2012-02-03 13:00:00, 2012-02-03 15:00:00], dtype=object)
unified[:, 1:]
>>> array([[1, 1],
[2, 2],
[3, 3]], dtype=object)
РЕДАКТИРОВАТЬ после вашего комментария Хорошо, теперь, когда я полностью понимаю, чего вы хотите, вы можете добиться этого, заменив
unified = numpy.sort(unified, axis=0)
с:
unified = numpy.array(sorted(unified, key= lambda x: x[0]))
РЕДАКТИРОВАТЬ
Вы пробовали то, что я только что предложил?В моем терминале:
unified = numpy.array([[datetime(2012,02,03,12,00,00), 4, 1],[datetime(2012,02,03,15,00,00), 5, 2],[datetime(2012,02,03,13,00,00), 2, 1]], dtype=object)
>>> unified
array([[2012-02-03 12:00:00, 4, 1],
[2012-02-03 15:00:00, 5, 2],
[2012-02-03 13:00:00, 2, 1]], dtype=object)
>>> unified = numpy.array(sorted(unified, key=lambda x: x[0]))
>>> unified
array([[2012-02-03 12:00:00, 4, 1],
[2012-02-03 13:00:00, 2, 1],
[2012-02-03 15:00:00, 5, 2]], dtype=object)