Python 的lambda表達式的一些小細節

jopen 9年前發布 | 12K 次閱讀 Python Python開發


# coding=UTF-8

加百子

g=lambda x,y:x+y total=0; for i in range(1,101):     #print i     total=g(total,i)      print total

即使定義相同的lambda方法他們也不能算是同一個

g1=lambda x,y:x+y g2=lambda x,y:x+y print g1 print id(g1) print g2 print id(g2)

lambda方法嵌套定義,lambda方法不適用變量引用而直接調用

print (lambda x,y:x+((lambda a:a+1)(y)))(1,2)

lambda方法定義不可以回車,也就是說像for這種代碼不能出現再lambda方法中

error

 lambda x,y:

     num=0

     for i in range(x,y+1)

         num+=i

取可迭代的序列參數中所有滿足真條件的值

元組和列表

print filter(None,(1,0,True,False)) print filter(None,[1,0,True,False])

字典的奇葩結果:返回的是key的列表,并且判斷時以第一個符合的元素的類型作為基準

print filter(None,{"a":1,"b":0,"c":True,"d":False}) print filter(None,{1:'s',0:'s',True:'s',False:'s'}) print filter(None,{True:'s',False:'s',1:'s',0:'s'}) print filter(None,{0:'s',1:'s',True:'s',False:'s'}) print filter(None,{False:'s',0:'s',1:'s',True:'s'}) print filter(None,{False:'s',0:'s',1:'s',True:'s',2:'s',1.23:'s','KK':'s',0.00:'s'}) print filter(lambda x:x%2,{1:'s',2:'s',3:'s',4:'s'})

取反

print filter(lambda x:not x,[1,0,True,False] )

取奇數和偶數

print filter(lambda x:x%2, [1,2,3,4,5,6,7]) print filter(lambda x:(x+1)%2, [1,2,3,4,5,6,7])

print filter(lambda [x,y]:(x+y)%2, [[1,2],[3,4],[5,6],[7,1]])error

print map(None,range(10)) print map(lambda x:x100,range(10)) print map(lambda x:x100+(x%2)(-1)+((x+1)%2)1,range(10)) print map(lambda x:0,range(10)) print map(lambda x:[x-1,x,x+1],range(10)) print map(lambda x:(x-1,x,x+1),range(10))

元組會變成元素相同的列表

print map(None,(1,2,3,4,5))

即使返回的列表相同,地址已經不同,也就是兩個列表不是同一個

l1 = [1, 2, 3, 4, 5, 6] l2 = map(None, l1) print l1,id(l1) print l2,id(l2)</pre>

輸出結果如下:(改天有空的時候,我會把輸出結果對應者插進去,現在請各位湊合著看吧)

5050
<function <lambda> at 0xb7487bfc>
3074980860
<function <lambda> at 0xb7487f7c>
3074981756
4
(1, True)
[1, True]
['a', 'c', 'b', 'd']
[1]
[True]
[1]
[1]
[1, 2, 'KK', 1.23]
[1, 3]
[0, False]
[1, 3, 5, 7]
[2, 4, 6]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 100, 200, 300, 400, 500, 600, 700, 800, 900]
[1, 99, 201, 299, 401, 499, 601, 699, 801, 899]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[[-1, 0, 1], [0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10]]
[(-1, 0, 1), (0, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10)]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6] 3074533388
[1, 2, 3, 4, 5, 6] 3074983436


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!