python 如何進行元組排序

2021-10-02 12:28:01 字數 680 閱讀 9549

python list 可以直接進行sort排序,預設是按照從小到大進行排序.

現在有個需求:要按照元組的第乙個元素進行公升序,但是按照第二個元素進行降序

如下是個取巧的辦法,這裡的100根據數值範圍進行調整,思路是選擇乙個函式,對第乙個元素是增函式,第二個元素是減函式

# sorted(l)

l = [(0, 2), (0, 12), (1 , 66), (1, 88)]

l.sort(key=lambda x: 100*x[0]-x[1])

print(l)

正規的寫法如下

l = [(0, 2), (0, 12), (1 , 66), (1, 88)]

from operator import itemgetter, attrgetter

def multisort(xs, specs):

for key, reverse in reversed(specs):

xs.sort(key=itemgetter(key), reverse=reverse)

return xs

multisort(l, ((0, false), (1, false)))

參考:

如何進行堆排序

堆排序是一種選擇排序,其時間複雜度為o nlogn 堆的定義 n個元素的序列當且僅當滿足下列關係之一時,稱之為堆。情形1 ki k2i 且ki k2i 1 最小化堆或小頂堆 情形2 ki k2i 且ki k2i 1 最大化堆或大頂堆 其中i 1,2,n 2向下取整 若將和此序列對應的一維陣列 即以一...

如何進行結構體排序

1.乙個結構體中有三個元素,按照其中乙個元素進行降序排列 先定義乙個結構體 struct node a 1005 然後寫排序 int cmp node a,node b 在main函式裡面用sort進行排序 sort a,a n,cmp 2 排序要求 按分數從高到低輸出上線考生的考號與分數,其間用1...

python如何進行http請求

在平時的開發過程中,少不了進行資料訂正,你可以乙個乙個手動去操作,當然這種方法太笨拙了,指令碼可以幫你解決掉這些事情,今天我要簡單總結乙個,如何寫python指令碼,向後端發起乙個http請求,並列印請求結果。如下 usr bin python coding utf 8 import sys imp...