python的sort()和sorted()函式可以進行多列排序。在乙個文字或者列表有多列時,這是乙個很好用的技巧。
首先,看一下待排序的資料
這是乙個csv檔案,它有6列,我們需要首先對第一列排序,再對第六列排序
46896961,192100485,1,95wf5sm,1863,2014-12-18 15
39716997,265509650,1,94k0ped,6058,2014-11-18 19
40907060,362837862,1,,12819,2014-12-08 04
118420067,331756810,1,,6054,2014-12-13 19
18261127,268564109,1,,2771,2014-12-17 19
17042777,72469526,1,,1863,2014-12-11 23
104414180,141928375,1,,1863,2014-12-09 19
28375714,258478694,1,,8095,2014-12-06 14
132940744,46626071,1,9752qdo,4230,2014-11-27 21
46896961,10879448,1,95wf59q,11279,2014-12-11 23
把資料讀到列表裡面,列表呼叫sort()函式進行排序,sort()函式多列排序的格式為 list.sort(key = lambda x:(第一列,第六列)),因為讀到列表裡面的字串有換行符,可以對第六列進行切片操作。由於第六列是規範的日期格式,所以自己用字串比較大小是可行的。如果日期不是規格化的,可以把年月日取出,轉為int型比較大小。
**實現為:
reader_list.sort(key = lambda x: (x.split(『,『)[0], x.split(『,『)[5][-14:-1]))
原文:
Python集合多列排序,多規則排序
今天遇到乙個多列排序的問題,排序規則正反不等。接下來就讓我們來看看python的強大之處吧 我遇到的集合是這樣的 tm list 這是一組商標資料,初步的要求是按照相似型別 sm type倒敘,中文相似度 sm zh倒敘排列,我們可以這樣寫 sorted tm list,key lambda tm ...
Python集合多列排序,多規則排序
今天遇到乙個多列排序的問題,排序規則正反不等。接下來就讓我們來看看python的強大之處吧 我遇到的集合是這樣的 tm list 這是一組商標資料,初步的要求是按照相似型別 sm type倒敘,中文相似度 sm zh倒敘排列,我們可以這樣寫 sorted tm list,key lambda tm ...
SQL ORDER BY 多列排序
最近學習my sql的時候對order by的多列排序邏輯不是很清楚,查閱了一些資料加上自己動手做了幾個小實驗清楚了不少,本結論僅適用於實驗條件下成立 列值為 int 先上結論 如 order by 列名1,列名2,列名3 若列名後不加限制條件,將直接按照離order by語句最近的無限制條件的列名...