可以讀取數據到一個列表,每行是一個字符串列表。然後使用僅查看日期的mmdd
部分的鍵功能對列表進行排序。
下面是一些代碼,說明了使用硬編碼列表的想法,但應該很容易讓它適應它來讀取文件中的行。
data = '''
19500101 20.7
19500102 19.9
19500103 -77.1
19500104 -1.2
19510101 230.1
19520101 -91.8
19530101 20.0
'''.splitlines()[1:]
def keyfunc(line):
return line.split(None, 1)[0][4:]
data.sort(key=keyfunc)
for row in data:
print row
輸出
19500101 20.7
19510101 230.1
19520101 -91.8
19530101 20.0
19500102 19.9
19500103 -77.1
19500104 -1.2
這裏是一個票友鍵功能:
def keyfunc(line):
date = line.split(None,1)[0]
return date[4:], date[:4]
如果兩個項目具有mmdd
同他們再上yyyy
相比,使所有物品與同樣的mmdd
被分組在一起,但在組內,他們也將按年分類。
line.split(None,1)[0]
獲取該行的日期部分。你可能只是使用line.split()[0]
做同樣的事情,但效率較低,因爲它必須將整條線分成單獨的列,我們只需要我們的密鑰的第一列。
請提供5-6行輸入數據(10列)和預期輸出。 – MaxU