sorted()函數和lambda函數的應用,能有效提高代碼效率,但初學者容易混淆,下面對這兩個函數及其應用進行分拆講解。
一、關於函數sorted()
sorted() 函數對所有可迭代的對象進行排序操作。sorted的語法如下:
sorted(iterable, key=None, reverse=False)
參數說明:
- iterable -- 可迭代對象。
- key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
- reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
返回值:重新排序的列表。
二、關於函數lambda:
匿名函數lambda:是指一類無需定義標識符(函數名)的函數或子程序。lambda 函數可以接收任意多個參數 (包括可選參數) 並且返回單個表達式的值。
lambda匿名函數的格式:冒號前是參數,可以有多個,用逗號隔開,冒號右邊的為表達式。其實lambda返回值是一個函數的地址,也就是函數對象。
需要要注意的是:lambda 函數包含的表達式只能是一個。
例如,定義一個返回數的平方的lambda:
a=lambda x:x*x
print(a(3))
那么輸出值是:9
三、幾個實際案例
看到幾個sorted與lambda的例子,很有代表性,了解了這些,這兩個函數使用就容易理解了
1. 對列表中的數字按字符串長度排序
b=sorted([13,1,237,89,100], key=lambda x: len(str(x)))
以上內容,對sorted()和llambda函數的組合應用進行了分析,希望對大家有所幫助。
參考文獻:
https://www.runoob.com/python3/python3-func-sorted.html
https://www.cnblogs.com/kaishirenshi/p/8611358.html
https://www.cnblogs.com/huigebj/p/11433896.html