lambda 表示式可以用來宣告匿名函式。
lambda 函式是一種簡單的、在同一行中定義函式的方法。lambda 函式實際生成了乙個函式物件。
lambda 表示式只允許包含乙個表示式,不能包含複雜語句,該表示式的計算結果就是函式的返回值。
lambda 表示式的基本語法如下:
lambda arg1,arg2,arg3… : 《表示式》
函式引數:arg1,arg2,arg3
函式體:《表示式》
運算結果是:表示式的運算結果
f = lambda x,y:print(" * = ".format(x,y,x*y))
f(9,9)
#該函式與下面的fun函式效果一樣
def fun(x,y):
return x*y
print(fun(9,9))
#lambda 也可以在列表中使用
a = [lambda x:x**3,lambda y:y**2,lambda x,y:x+y]
print("列印列表a每一項值:",a[0](3),a[1](6),a[2](3,6))
執行結果:
9 * 9 = 81
81列印列表a每一項值: 27 36 9
map()函式,需要兩個引數,第乙個引數是函式關係式,第二個是要傳入的引數列表。
x = [1,2,3,4,5]
#f = lambda x:x**2
#y = list(map(f,y_label))
y = list(map(lambda x:x**2,x_label))
結果: [1,4,9,16,25]
功能:將字串 str 當成有效的表示式來求值並返回計算結果。
語法:eval(source,[globals,[ locals]]) -> value
引數:
source:乙個 python 表示式或函式 compile()返回的**物件
globals:可選。必須是 dictionary
locals:可選。任意對映物件
s = "print('abcde')"
eval(s)
a = 10
b = 20
c = eval("a+b")
print(c)
dict1 = dict(a=100,b=200)
d = eval("a+b",dict1) #dict1中的a,b傳參給表示式「a + b」,所以列印出300
print(d)
執行結果:
abcd
30300
eval 函式會將字串當做語句來執行,因此會被注入安全隱患。比如:字串中含有刪除文
件的語句。那就麻煩大了。因此,使用時候,要慎重!!!
C 匿名函式和Lambda表示式
一 匿名函式 匿名函式不等於匿名方法,匿名函式包含了匿名方法和lambda表示式這兩種概念。1 匿名方法 1 委託 委託是用於引用與其具有相同標籤的方法。即可以使用委託物件呼叫可由委託引用的方法。2 匿名方法 anonymous methods 提供了一種傳遞 塊作為委託引數的技術。匿名方法是沒有名...
匿名函式 委託和Lambda表示式
其中匿名的函式簽名可以包括兩種,一種是隱式的匿名函式簽名另一種是顯式的匿名函式簽名 隱式的函式簽名 p p1,p1 顯式的函式簽名 int p int p1,int p2 ref int p1,out int p2 匿名的函式體可以是表示式或者 塊。從上面我們可以看出,lambda表示式的引數形式可...
4 6 匿名函式 Lambda表示式
4.6 匿名函式 lambda表示式 lambda函式是一種快速定義單行的最小函式,是從lisp借用來的,可以用在任何需要函式的地方。無須定義函式名稱 寫法舉例 g lambda x,y,z.x y lambda 構造的是乙個函式物件 example4.6.1 g lambda x,y x y g ...