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) #生成一個新的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ù)
主要是因為python3不支持比較函數(shù),在一些接受key的函數(shù)中(例如sorted,min,max,heapq.nlargest,itertools.groupby),key僅僅支持一個參數(shù),就無法實現(xiàn)兩個參數(shù)之間的對比,采用cmp_to_key 函數(shù),可以接受兩個參數(shù),將兩個參數(shù)做處理,比如做和做差,轉(zhuǎn)換成一個參數(shù),就可以應(yīng)用于key關(guān)鍵字之后。
舉個例子
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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用Keras OCR實現(xiàn)從圖像中刪除文本
這篇文章主要為大家介紹了如何在Python中利用Keras OCR實現(xiàn)快速地從圖像中刪除文本,從而作為圖像分類器的預(yù)處理步驟,需要的可以參考一下2022-03-03
Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實例
這篇文章主要為大家介紹了Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
Pytorch mask-rcnn 實現(xiàn)細(xì)節(jié)分享
這篇文章主要介紹了Pytorch mask-rcnn 實現(xiàn)細(xì)節(jié)分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python遠(yuǎn)程桌面協(xié)議RDPY安裝使用介紹
這篇文章主要介紹了Python遠(yuǎn)程桌面協(xié)議RDPY安裝使用介紹,本文講解了RDPY的安裝、RDPY的簡單使用兩部份內(nèi)容,需要的朋友可以參考下2015-04-04
使用Python的requests庫調(diào)用API接口的詳細(xì)步驟
使用 Python 的requests庫調(diào)用 API 接口是開發(fā)中最常用的方式之一,它簡化了 HTTP 請求的處理流程,以下是詳細(xì)步驟和實戰(zhàn)示例,涵蓋各種常見場景,需要的朋友可以參考下2025-08-08
使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程
這篇文章主要介紹了使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04

