python list 自定義排序

2021-07-06 01:39:31 字數 910 閱讀 4544

看到的乙個知識點,稍加記錄…

a = [, , ]
希望將上述的list排序,按照每條記錄中的'score'排序。如果'score'欄位的值相等,則按照'first'的值排序。如果'first'依舊相等,則按照'second'排序。如果'second'相等,則按照'third'欄位的值來排序。

>>> a.sort.__doc__

'l.sort(cmp=none, key=none, reverse=false) -- stable sort *in place*;\ncmp(x, y) -> -1, 0, 1'

>>> def cmp(a1, a2):

...if a1['score'] != a2['score']:

...return a1['score'] - a2['score']

... elif a1['first'] != a2['first']:

...return a1['first'] - a2['first']

... elif a1['second'] != a2['second']:

...return a1['second'] - a2['second']

...else:

...return a1['third'] - a2['third']

...

>>>

>>>

>>>

>>> a.sort(cmp)

>>> a

[, , ]

DataGridView自定義排序

net自帶datagridview排序貌似最終都是用datagridview.sort 發現當是用排序後,datagridview將把排序前的行樣式等重置,仔細測試後覺得貌似是排序時datagridview重新繫結了資料來源,具體不得而知.實在沒有辦法破解,我也不想重新寫比較來排序,用了最土的辦法,...

QTableWidget 自定義排序

qtablewidget功能強大,可以在每個格仔裡新增自己的wiget部件。如果想對這些自己新增的widget進行排序有兩種方法。一種是直接設定每個格仔對應的qtablewidgetitem的值,因為qtablewidget預設是據qtablewidgetitem來排序,呼叫的比較函式是 bool ...

自定義排序函式

python 內建的sorted 函式可對 list 進行排序 sorted 36,5,12,9,21 5,9,12,21,36 但 sorted 也是乙個高階函式,它可以接收乙個比較函式來實現自定義排序,比較函式的定義是,傳入兩個待比較的元素 x,y 如果x 應該排在 y 的前面,返回 1,如果 ...