python lambda表達式


  session = property(lambda self: object_session(self)) #記錄已有的session,hold住一個數據傳輸通道

 一、概述

lambda的一般形式是關鍵字lambda后面跟一個或多個參數,緊跟一個冒號,以后是一個表達式。lambda是一個表達式而不是一個語句。它能夠出現在Python語法不允許def出現的地方。作為表達式,lambda返回一個值(即一個新的函數)。lambda用來編寫簡單的函數,而def用來處理更強大的任務。【1】

 

二、lambda的使用【1】

  1、一般的形式

    f = lambda x, y, z :x+y+z

    print f(1,2,3) #6 

  2、lambda用來編寫跳轉表(jump table)行為的列表或者字典,(個人理解應該就是矩陣 matrix)吧

L = [lambda x: x+2, lambda x: x*2, lambda x: x**2]
print "L=", L[0](1), L[1](2), L[2](3)
#L = 3 4 9

D = {"d1": lambda x: x**1, "d2": lambda x: x**2, "d3": lambda x: x**3 }

print "D=", D["d1"](2), D["d2"](2), D["d3"](2)

# D= 2 4 8

寫了一下這兩個例子發現自己基礎真是爛包

  3、lambda的嵌套使用,從可讀性角度來講應該避免(看了例子深有感觸,我有些懵)【2】

l = lambda: lambda x: x + 5
b = l()
print "b=", b(2)
print "==", (l())(2)
#b= 7
#== 7 

  4、與map函數的比較

def inc(x):
return x + 10
l = [1, 2, 3]
print map(inc, l)
print map(lambda x: x+10, l)
#[11, 12, 13]
#[11, 12, 13] 

  5、列表解析實現map功能並且更高效

 

  6、以后全部是列表解析相關的示例------

    

 

 

 

 

--------41316--

  參考鏈接:【1】、python學習12

       【2】、python中lambda表達式學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM