python lambda表達(dá)式在sort函數(shù)中的使用詳解
1.lambda表達(dá)式一般用法
語法:
lamda argument:expression
example:
add = lambda x, y: x+y print(add(10, 20))<br data-filtered="filtered">>>> 30
2.lambda表達(dá)式在sort函數(shù)中的使用
假如a是一個由元組構(gòu)成的列表,對該列表進(jìn)行排序時,我們需要用到參數(shù)key,也就是關(guān)鍵詞,如下面代碼所示,lambda是一個匿名函數(shù),是固定寫法;x表示匿名函數(shù)的輸入,即列表中的一個元素,在這里,表示一個元組,x只是臨時起的一個名字,你可以使用任意的名字;x[0]表示匿名函數(shù)的輸出,即元組里的第一個元素,即key = x[0];所以這句命令的意思就是按照列表中第一個元素進(jìn)行排序。
a = [('b', 4), ('a', 12), ('d', 7), ('h', 6), ('j', 3)] a.sort(key=lambda x: x[0]) print(a)<br data-filtered="filtered">>>>[('a', 12), ('b', 4), ('d', 7), ('h', 6), ('j', 3)]
3.舉例,leetcode中的一道題
937.重新排列日志
你有一個日志數(shù)組 logs。每條日志都是以空格分隔的字串。
對于每條日志,其第一個字為字母數(shù)字標(biāo)識符。然后,要么:
標(biāo)識符后面的每個字將僅由小寫字母組成,或;
標(biāo)識符后面的每個字將僅由數(shù)字組成。
我們將這兩種日志分別稱為字母日志和數(shù)字日志。保證每個日志在其標(biāo)識符后面至少有一個字。
將日志重新排序,使得所有字母日志都排在數(shù)字日志之前。字母日志按內(nèi)容字母順序排序,忽略標(biāo)識符;在內(nèi)容相同時,按標(biāo)識符排序。數(shù)字日志應(yīng)該按原來的順序排列。
返回日志的最終順序。
示例 :
輸入:["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"]
輸出:["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]
思路:先將日志數(shù)組logs分成兩個日志數(shù)組,一個存儲字母日志,一個存儲數(shù)字日志,根據(jù)題意,需將所有字母日志排在數(shù)字日志前面,字母日志按內(nèi)容字母排序,故僅需對字母日志數(shù)組排序,最后返回兩個數(shù)組想家的結(jié)果就OK了。
代碼如下:
class Solution(object): def reorderLogFiles(self, logs): """ :type logs: List[str] :rtype: List[str] """ l1=[] l2=[] for l in logs: if l[-1].isalpha(): l1.append(l) else: l2.append(l) l1.sort(key=lambda x:(x[x.index(' ')+1:],x[:x.index(' ')])) return l1+l2
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python中with語句結(jié)合上下文管理器操作詳解
這篇文章主要給大家介紹了關(guān)于python中with語句結(jié)合上下文管理器操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Python按要求從多個txt文本中提取指定數(shù)據(jù)的代碼示例
本文給大家介紹了Python如何按要求從多個txt文本中提取指定數(shù)據(jù),遍歷文件夾并從中找到文件名稱符合我們需求的多個.txt格式文本文件,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-12-12詳解python while 函數(shù)及while和for的區(qū)別
這篇文章主要介紹了python while 函數(shù)及while和for的區(qū)別 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09python安裝庫的最詳細(xì)方法(以安裝pygame庫為例)
在學(xué)習(xí)了一個學(xué)期的python之后,我決定對pygame下手了,下面這篇文章主要給大家介紹了關(guān)于python安裝庫的最詳細(xì)方法,本文主要以安裝pygame庫為例,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05python實現(xiàn)計算資源圖標(biāo)crc值的方法
這篇文章主要介紹了python實現(xiàn)計算資源圖標(biāo)crc值的方法,通過解析資源文件找到icon的數(shù)據(jù),從而實現(xiàn)該功能,需要的朋友可以參考下2014-10-10