python list多級排序

2021-09-08 13:43:13 字數 636 閱讀 6713

在python3的sorted中去掉了cmp引數,轉而推薦「key+lambda」的方式來排序。

如果需要對python的list進行多級排序。有如下的資料:

list_num = [[12,3],[18,34],[18,10],[12,45],[18,10],[8,34]]
需要從小到大的排序。先比較第乙個數,如果第乙個數相等的話比較第二個數。**如下:

#預設的sort函式會先對第乙個比較,如果第乙個相等再比較第二個

print(sorted(list_num))

//output:[[8, 34], [12, 3], [12, 45], [18, 10], [18, 10], [18, 34]]

#先用第二個數排序,若相等再用第乙個數排序

print(sorted(list_num, key = lambda x:(int(x[1]),int(x[0]))))

//output:[[12, 3], [18, 10], [18, 10], [8, 34], [18, 34], [12, 45]]

因為sort函式是安裝list中資料的先後順序進行排序的;因此使用lambda將list中資料的位置進行調換就可以對資料安裝某些位置的排序。

python list 自定義排序

看到的乙個知識點,稍加記錄 a 希望將上述的list排序,按照每條記錄中的 score 排序。如果 score 欄位的值相等,則按照 first 的值排序。如果 first 依舊相等,則按照 second 排序。如果 second 相等,則按照 third 欄位的值來排序。a.sort.doc l....

python list 對時間排序小結。

python list 排序比較簡單。但是對時間排序有時可能會比較麻煩一點,對時間的大致思想是對時間字串進行格式化。然後進行排序。第一種排序方法是按照 的方法進行排序。第二種排序方法比較簡單,但是對時間格式要求比較嚴格。就拿第一種方法中部落格鏈結裡面的result data列表為例吧。因為每個元素的...

python list裡面是dict時排序

剛開始我用的是氣泡排序 def sort jsonlist 氣泡排序,按位址大小重新排序 for i in range len jsonlist 1 for j in range len jsonlist 1 i if jsonlist j modbus從站id jsonlist j 1 modbu...