day17.Python中lambda表达式应用
生活随笔
收集整理的這篇文章主要介紹了
day17.Python中lambda表达式应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于簡單的函數,也存在一種簡便的表示方式,即:lambda表達式
#普通函數 1 def func(a): 2 return a+1 3 print 'test1_func0:',func(1000) 4 #lambda表達式 5 func0 = lambda a:a+1 6 print 'test2_func0:',func0(1000)上面這種方法,都實現了將1000+1的結果打印出來這個功能。
lambda存在意義就是對簡單函數的簡潔表示。
上面是我們對calc這個匿名函數的分析,下面給出了一個關于匿名函數格式的說明
函數名 = lambda 參數 :返回值#參數可以有多個,用逗號隔開 #匿名函數不管邏輯多復雜,只能寫一行,且邏輯執行結束后的內容就是返回值 #返回值和正常的函數一樣可以是任意數據類型我們可以看出,匿名函數并不是真的不能有名字。
匿名函數的調用和正常的調用也沒有什么分別。 就是 函數名(參數) 就可以了。
?
說到lambda,這里再贈送一些可以給lambda加buff小伙伴:
1.map函數,我們使用map函數將會對列表中的所有元素進行操作。map有兩個參數(函數,列表),它會在內部遍歷列表中的每一個元素,執行傳遞過來的函數參數。在輸出到新列表中。
1 li = [11, 22, 33] 2 new_list = map(lambda a: a + 100, li) 輸出:[111, 122, 133]當然,map還可以完成多個數組的相加:
li = [11, 22, 33] sl = [1, 2, 3] new_list = map(lambda a, b: a + b, li, sl) print new_list 輸出:[12, 24, 36]2.reduce函數,對于序列內所有元素進行累計操作:
lst = [11,22,33] func2 = reduce(lambda arg1,arg2:arg1+arg2,lst) print 'func2:',func2 輸出:func2: 663.filter函數,他可以根據條件對數據進行過濾:
li = [11, 22, 33] new_list = filter(lambda arg: arg > 22, li) print new_list 輸出:[33]?
面試題練一練
現有兩個元組(('a'),('b')),(('c'),('d')),請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]
#答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) #答案二 print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2)))) #還可以這樣寫 print([{i:j} for i,j in zip(t1,t2)]) 答案?
轉載于:https://www.cnblogs.com/maxiaotiaoshishui/p/7280090.html
總結
以上是生活随笔為你收集整理的day17.Python中lambda表达式应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [补档]藏宝图
- 下一篇: python当中的生成器