Python複雜多重排序

2021-09-06 20:20:53 字數 1080 閱讀 3958

1. cmp函式是python自帶的函式,用於比較兩個引數哪個大哪個小

print  cmp(2, 3)   #

-1print cmp(2, 1) #

1print cmp(2, 2) #

0

如果第乙個引數比第二個小,就返回-1,兩個元素相等,返回0,否則返回1

2.所以就可以利用這個函式來自定義自己的比較規則

def

cmp_country_size(country1, country2):

alist = ['

美國', '

中國', '

加拿大', '

俄羅斯'

]

return

cmp(alist.index(country1), alist.index(country2))

print cmp_country_size('

中國', '

加拿大')

例如這裡cmp_country_size函式用於比較哪個國家的面積比較大

3.python中的排序

python中用於排序的函式有sorted和sort,sort是列表的方法,它們的區別是:sort在原來的列表中進行排序,sorted是新建乙個列表來進行排序,

它們的用法是一樣的:

def sort(self, cmp=none, key=none, reverse=false)

cmp是排序的規則,key是按照列表元素中哪乙個部分來排序,reverse是否反序

items=[,

]items.sort(cmp=lambda x,y:cmp_country_size(x['

country

'],y['

country

']) or cmp(x['

age'],y['

age']) or cmp(x['

name

'],y['

name

']) )

print items

把items中的元素,先按國家來排,然後按年齡和名稱來排序

Lua多重排序

網上有好多排序,不過寫的都大同小異。本文講解下多重排序,意思是多個條件排序。前提 1.lua排序的原理是氣泡排序,即從前往後比較,滿足一定條件a則交換,否則不交換。2.lua排序函式table.sort tbl,sortfunc sortfunc中會比較前後表中前後兩個值,sortfunc函式返回t...

go 多重排序 堆排序

記錄一下go實現多重排序的方法和實現堆排序的方式 實現sort介面即可用sort.sort 方法對物件進行排序,而多重排序呢,我想傳入不同排序規則,然後讓該物件依次執行不同規則 排序規則 type lessfunc func p1,p2 curriculumelem bool multisorter...

Oracle,SQL多重排序 多欄位排序

我們在查詢出資料的時候,需要根據某幾個字段進行排序。比如 查詢車輛的時候,根據車輛的型別或者註冊時間查詢車輛資訊,然後根據車輛的號碼排序,再根據車輛型別進行排序,再或者根據車輛的註冊時間進行排序。具體的查詢語句應該是 sql select hphm,hpzl,time from car where ...