- 本文主要解多字段(存在主序和次序)的排序問題,由于python3的sort沒有cmp參數,可能會突然不知所措
- csdn還有通過将多字段組合成元組的方式來實作多字段排序,見本文,不過個人感覺可能沒有本文中的方法直覺
- 主要原理是python的sort是穩定排序,是以可以先根據次要的序去排,再排主要的序,因為在排主序時若發生相等的情況,元素的順序會保持在原先序列中的位序關系(也即維持了次要的序)
- 示例代碼如下
arr = [(1,2,3), (1,2,1), (1,2,6), (1,3,1), (2,3,1)] # 比如排序的要求是先排元組的第0個元素(升序) # 第0元素相等時再排第1個元素(升序) # 第1個元素還相等時再排第2個元素(升序) arr.sort(key=lambda x:x[2]) arr.sort(key=lambda x:x[1]) arr.sort(key=lambda x:x[0]) print(arr)