Python3 sort和sorted用法+cmp_to_key()函數(shù)詳解
Python3 sort和sorted用法+cmp_to_key()函數(shù)

在python3中沒(méi)有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,原來(lái)的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ù),就無(wú)法實(shí)現(xiàn)兩個(gè)參數(shù)之間的對(duì)比,采用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)文章
Python使用Keras OCR實(shí)現(xiàn)從圖像中刪除文本
這篇文章主要為大家介紹了如何在Python中利用Keras OCR實(shí)現(xiàn)快速地從圖像中刪除文本,從而作為圖像分類器的預(yù)處理步驟,需要的可以參考一下2022-03-03
JS設(shè)計(jì)模式之責(zé)任鏈模式實(shí)例詳解
這篇文章主要介紹了JS設(shè)計(jì)模式之責(zé)任鏈模式,結(jié)合實(shí)例形式詳細(xì)分析了責(zé)任鏈模式的概念、原理、功能、使用場(chǎng)景及相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實(shí)例
這篇文章主要為大家介紹了Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Pytorch mask-rcnn 實(shí)現(xiàn)細(xì)節(jié)分享
這篇文章主要介紹了Pytorch mask-rcnn 實(shí)現(xiàn)細(xì)節(jié)分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python遠(yuǎn)程桌面協(xié)議RDPY安裝使用介紹
這篇文章主要介紹了Python遠(yuǎn)程桌面協(xié)議RDPY安裝使用介紹,本文講解了RDPY的安裝、RDPY的簡(jiǎn)單使用兩部份內(nèi)容,需要的朋友可以參考下2015-04-04
使用Python的requests庫(kù)調(diào)用API接口的詳細(xì)步驟
使用 Python 的requests庫(kù)調(diào)用 API 接口是開(kāi)發(fā)中最常用的方式之一,它簡(jiǎn)化了 HTTP 請(qǐng)求的處理流程,以下是詳細(xì)步驟和實(shí)戰(zhàn)示例,涵蓋各種常見(jiàn)場(chǎng)景,需要的朋友可以參考下2025-08-08
使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程
這篇文章主要介紹了使用IPython下的Net-SNMP來(lái)管理類UNIX系統(tǒng)的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04
python list語(yǔ)法學(xué)習(xí)(帶例子)
python list語(yǔ)法學(xué)習(xí)2013-11-11

