lambda表達式
python中形如:
1
|
lambda parameters: expression |
稱為lambda
表達式,用于創建匿名函數,該表達式會產生一個函數對象。
該對象的行為類似于用以下方式定義的函數:
1
2
|
def < lambda >(parameters): return expression |
python中的lambda
函數可以接受任意數量的參數,但只能有一個表達式。也就是說,lambda
表達式適用于表示內部僅包含1行表達式的函數。那么lambda
表達式的優勢就很明顯了:
- 使用
lambda
表達式可以省去單行函數的定義過程,使代碼更加簡潔;- 適用于不需要多次復用的函數
例:
1
2
3
|
y = lambda x: x * x print (y( 3 )) > 9 |
1
2
3
|
fx = lambda x, y, z: x + y + z print (fx( 3 , 4 , 5 )) > 12 |
sorted()
python3.x中sorted函數:
1
|
sorted (iterable, * , key = None , reverse = False ) |
sorted
函數會根據iterable
中的項返回一個新的已排序列表。
其中key
與reverse
是兩個可選參數,它們都必須指定為關鍵字參數;
key:指定帶有單個參數的函數,用于從iterable的每個元素中提取用于比較的鍵,默認為None
,即直接比較元素;
reverse:為一個布爾值,用來指定排序規則,默認為False
(升序)。
python2的sorted函數中還有一個參數cmp,python3的sorted中已經沒有這個參數了。
與list.sort()方法不同的是,sorted()是有返回值的,而list.sort()的返回值為None;并且list.sort()只能對list進行排序,而sorted()可以接收任何的iterable
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# list foo = [ 5 , 7 , 2 , 9 , 1 ] bzz = sorted (foo) print (bzz) # > [1, 2, 5, 7, 9] print ( sorted (foo)) # > [1, 2, 5, 7, 9] print ( sorted (foo, reverse = True )) # > [9, 7, 5, 2, 1] print ( sorted (foo, key = lambda x: x * - 1 )) # > [9, 7, 5, 2, 1] # dict bar = { 'java' : 14 , 'c' : 16 , 'python' : 9 , 'cpp' : 6 , 'csharp' : 4 } print ( sorted (bar)) # > ['c', 'cpp', 'csharp', 'java', 'python'] print ( sorted (bar.items(), key = lambda kv: kv[ 1 ], reverse = True )) # > [('c', 16), ('java', 14), ('python', 9), ('cpp', 6), ('csharp', 4)] |
以上就是詳解python中的lambda與sorted函數的詳細內容,更多關于python lambda與sorted函數的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/Jaywhen-xiang/p/13580455.html