10. 使用lamba函式
(1) 用def宣告的bmi()函式
以下是一個例子:
這個函式宣告了名稱是bmi,傳入2個參數,內容沒有if指令,也沒有迴圈,只有一行將要回傳的計算結果。
呼叫函式:
執行結果:
19.03
(2) 將以上的程式改寫成lambda函式
以下是一個例子:
第1行,先建立一個匿名函式物件,再將該物件的位址交給bmi這個變數,所以bmi是一個指向函式的參照,也可以用bmi來呼叫函式。
呼叫函式:
執行結果:
19.03
說明:
(3) 將lambda函式用在「排序」中
以下是一個例子:
執行結果:
[(80, 90, 100), (55, 85, 65), (100, 70, 70), (70, 60, 90)]
說明:
(4) 用文字的長度排序
以下是一個例子:
執行結果:
['Japan', 'Korea', 'Taiwan', 'Malaysia', 'Thailand']
說明:
問題1:
寫一個lambda函式,並且讓diff變數指向該函式。假設該函式可傳入不定個數的數字,並且回傳最大及最小參數值的差距。
測試主程式:
測試結果範例:
20 130
問題2:
假設資料如後, [(80, 90, 100), (70, 60, 90), (55, 85, 65), (100, 70, 70)],每項資料包括3個成績。請依各項資料的3個成績總和排序,由大至小排。
測試結果範例:
[(80, 90, 100), (100, 70, 70), (70, 60, 90), (55, 85, 65)]