小編給大家分享一下python中sort()方法的cmp參數(shù)是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供樂業(yè)網(wǎng)站建設(shè)、樂業(yè)做網(wǎng)站、樂業(yè)網(wǎng)站設(shè)計(jì)、樂業(yè)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、樂業(yè)企業(yè)網(wǎng)站模板建站服務(wù),十載樂業(yè)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
“如果希望元素能按照特定的方式進(jìn)行排序(而不是sort函數(shù)默認(rèn)的方式,即根據(jù)python的默認(rèn)排序規(guī)則按升序排列元素),那么可以通過compare(x,y)的形式自定義比較函數(shù)。
compare(x,y)函數(shù)會在x<y時(shí)返回負(fù)數(shù),在x>y時(shí)返回正數(shù),如果x=y則返回0(根據(jù)你的定義)。
定義好該函數(shù)之后,就可以提供給sort方法作為參數(shù)了。內(nèi)建函數(shù)cmp提供了比較函數(shù)的默認(rèn)實(shí)現(xiàn)方式:
對于sort()方法,如果不傳入?yún)?shù),默認(rèn)cmp為None,即numbers.sort()=number,sort(cmp)=number.sort(cmp=None),我們可以做一個(gè)驗(yàn)證:
如果傳入?yún)?shù),numbers.sort(cmp=1),我們可以驗(yàn)證一下,整型的參數(shù)可不可以:
代碼報(bào)錯(cuò):int對象不是一個(gè)callable,可調(diào)用對象。callable(object) 方法用來檢測對象是否可被調(diào)用,即是否是一個(gè)函數(shù),如果是則調(diào)用該函數(shù)的值,賦值給cmp。
那么我們?nèi)绾巫远x一個(gè)比較函數(shù)呢?
其中的規(guī)律就是:兩兩比較,如果返回為正,則交換兩者的位置,即y在前x在后,否則x在前y在后。也可以這樣解釋,升序就是拿第一個(gè)數(shù)比對后面的數(shù),降序就是拿最后一個(gè)數(shù)比對前面的數(shù)。
當(dāng)然,也可以寫作numbers.sort(mycmp1),省略cmp。
我們還可以直接穿入匿名函數(shù)lambda:
另外,python3.x中取消了cmp參數(shù),也不支持直接往sort()里面?zhèn)骱瘮?shù),但可以構(gòu)造排序函數(shù)傳遞給key來實(shí)現(xiàn)。
以上是“python中sort()方法的cmp參數(shù)是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁標(biāo)題:python中sort()方法的cmp參數(shù)是什么
當(dāng)前地址:http://aaarwkj.com/article36/pcdcsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、Google、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)