2015-03-13 82 views
-2

簡單的字符串排序我有記錄(如字符串)和那些串號:Python中,由日期時間

5 
    01.06.2012 09:45 a a a 
    01.06.2012 08:00 b b b 
    21.12.2012 21:00 c c c 
    13.07.2011 17:00 d d d 
    26.05.2012 08:00 e e e 

我想按日期和打印指令進行排序。我知道我應該使用strptime,但我希望有人告訴我如何。這些行被寫入控制檯(所以標準輸入)。

謝謝!

+0

你已經知道解決方案,所以你有效地尋找的是有人*給你的codez?* – Ffisegydd 2015-03-13 12:51:26

回答

1

試試這個:

import datetime 

a_list = ["01.06.2012 09:45 a a a", "01.06.2012 08:00 b b b", "21.12.2012 21:00 c c c", "13.07.2011 17:00 d d d", "26.05.2012 08:00 e e e"] 

def sorting(x): 
    date = " ".join(x.split()[:2]) 
    return datetime.datetime.strptime(date, '%d.%m.%Y %H:%M') 

print sorted(a_list, key=sorting) 

此代碼只是使用自定義排序函數來分割字符串,得到的只是有日期的部分,然後用strptime解析它。

0

也許你可以使用sort()

listLength = input() 
timeList = [] 
while listLength: 
    timeStr = raw_input() 
    timeList.append(timeStr) 
    listLength = listLength - 1 

timeList.sort() 
print '-' * 10 
for timeStr in timeList: 
    print timeStr