Python3 sort和sorted用法+cmp_to_key()函數(shù)詳解
Python3 sort和sorted用法+cmp_to_key()函數(shù)
在python3中沒有cmp函數(shù)
sort詳情:
>>> a = [1,2,1,4,3,5] >>> a.sort() >>> a [1, 1, 2, 3, 4, 5] >>> a = [1,2,1,4,3,5] >>> sorted(a) #生成一個(gè)新的list,原來的list a 不變 [1, 1, 2, 3, 4, 5] >>> a [1, 2, 1, 4, 3, 5]
import sys from functools import cmp_to_key def cmp_new(x,y): if (x+y)>(y+x): return 1 elif (x+y)<(y+x): return -1 else : return 0 n=input() s=input().split() s.sort(key=cmp_to_key(cmp_new),reverse=True) print(''.join(s).lstrip("0")) #或者如下 s_new = sorted(s,cmp_to_key(cmp_new),reserve=True) print(''.join(s_new).lstrip("0"))
一句話理解cmp_to_key函數(shù)
主要是因?yàn)閜ython3不支持比較函數(shù),在一些接受key的函數(shù)中(例如sorted,min,max,heapq.nlargest,itertools.groupby),key僅僅支持一個(gè)參數(shù),就無法實(shí)現(xiàn)兩個(gè)參數(shù)之間的對比,采用cmp_to_key 函數(shù),可以接受兩個(gè)參數(shù),將兩個(gè)參數(shù)做處理,比如做和做差,轉(zhuǎn)換成一個(gè)參數(shù),就可以應(yīng)用于key關(guān)鍵字之后。
舉個(gè)例子
from functools import cmp_to_key L=[9,2,23,1,2] sorted(L,key=cmp_to_key(lambda x,y:y-x)) 輸出: [23, 9, 2, 2, 1] sorted(L,key=cmp_to_key(lambda x,y:x-y)) 輸出: [1, 2, 2, 9, 23]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
matplotlib 畫動態(tài)圖以及plt.ion()和plt.ioff()的使用詳解
這篇文章主要介紹了matplotlib 畫動態(tài)圖以及plt.ion()和plt.ioff()的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01django之使用celery-把耗時(shí)程序放到celery里面執(zhí)行的方法
今天小編就為大家分享一篇django之使用celery-把耗時(shí)程序放到celery里面執(zhí)行的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07opencv 圖像加法與圖像融合的實(shí)現(xiàn)代碼
這篇文章主要介紹了opencv 圖像加法與圖像融合的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07詳解如何修改jupyter notebook的默認(rèn)目錄和默認(rèn)瀏覽器
這篇文章主要介紹了詳解如何修改jupyter notebook的默認(rèn)目錄和默認(rèn)瀏覽器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Django自關(guān)聯(lián)實(shí)現(xiàn)多級聯(lián)動查詢實(shí)例
這篇文章主要介紹了Django自關(guān)聯(lián)實(shí)現(xiàn)多級聯(lián)動查詢實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python光學(xué)仿真教程實(shí)現(xiàn)光線追蹤
傳統(tǒng)的高斯光學(xué)是建立在傍軸近似基礎(chǔ)之上的理想成像理論,這種處理以物像關(guān)系為核心,通過基點(diǎn)對光路的成像特性進(jìn)行描述。然而,傍軸近似在一定程度上犧牲了精確性,從而使得需要一套像差理論作為補(bǔ)充2021-10-10