2015-04-24 3 views
3

У меня есть список кортежей, каждый из которых содержит дату, а затем номер.Преобразовать строку даты стандартного формата в объект datetime

days = [('04/02/15', 4.5),('03/15/15', 5.0),('04/21/15', 1.9)] 

Я хочу отсортировать их по дате. Как мне преобразовать их в объекты DateTime или иным образом их сортировать?

+3

связанные http://stackoverflow.com/questions/4183793/str-to-time-in-python, http://stackoverflow.com/questions/466345/ convertting-string-in-datetime –

+1

https://docs.python.org/2/library/time.html#time.strptime – m0dem

+0

Возможный дубликат [Сортировка словаря Python по значению] (http://stackoverflow.com/ вопросы/613183/sort-a-python-dictionary-by-value) –

ответ

6

Вы можете использовать strptime:

from time import strptime 
days = [('04/02/15', 4.5), ('03/15/15', 5.0), ('04/21/15', 1.9)] 
days.sort(key = lambda tup: strptime(tup[0], '%m/%d/%y')) 
+0

Спасибо, что мне нужно было сделать. Я приму ответ, как только это позволит мне. – MikeVaughan

+0

@MikeVaughan: 'time.strptime()' возвращает 'time.struct_time', а не' datetime' объект как 'datetime.strptime()' does и заголовок вопроса указывает. Хотя, как сортирующий ключ, здесь также работает 'time.struct_time'. – jfs

Смежные вопросы