匿名函數
python 使用 lambda 來創建匿名函數。
- lambda只是一個表達式,函數體比def簡單很多。
- lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
- lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間裏的參數。
- 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。
語法
lambda函數的語法只包含一個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
示例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可寫函數說明
sum = lambda arg1, arg2: arg1 + arg2;
# 調用sum函數
print "相加後的值爲 : ", sum( 10, 20 )
print "相加後的值爲 : ", sum( 20, 20 )
擴展
之前在list的排序中也用到了lamba函數來對字符串長度進行計量
li = ["hello", "test", "python"]
li.sort(key=lambda elem: len(elem))
print(li)
- 詳情參見菜鳥教程