看到的乙個知識點,稍加記錄…
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,如果 ...