9.匿名函数:lambda表达式/filter()/map()
生活随笔
收集整理的這篇文章主要介紹了
9.匿名函数:lambda表达式/filter()/map()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
匿名函數的好處:
1.簡化代碼的可讀性:由于普通的屌絲函數閱讀時經常要 跳到開頭def定義部分,使用lanbda函數可以省去這樣的步驟 2.省去取名字的問題:對于一些比較抽象并且在整個程序中只調用 一兩次的函數,我們可以直接使用匿名函數 3.python寫一些執行腳本時,使用lambda就可以省下定義函數過程,比如 說我們只是需要寫個簡單的腳本來管理服務器時間,我們就不需要專門定義一個函數 然后再寫調用,使用lambda就可以使得代碼更加簡潔。語法:
格式: lambda 形參 : 函數體 返回值:返回一個函數的對象 例: >>> lambda x : x*x <function <lambda> at 0x00000000026FFF98>一般情況下,我們這樣使用:先用變量g接受匿名函數 返回的函數對象;然后用變量g去調用函數 >>> g = lambda x : x*x >>> g(2) 4–
–
兩個牛逼的BIF
1. filter:過濾器
>>> help(filter) Help on built-in function filter in module __builtin__:filter(...)filter(function or None , sequence) -> list, tuple, or string#filter( 函數 or 無函數, 序列 )Return those items of sequence for which function(item) is true.#返回使函數為true的序列元素 If function is None, return the items that are true. #如果沒有函數,返回序列元素為true的元素【例1】 >>> filter(None,[1,2,0,[False],False,True]) #無函數None [1, 2, [False], True]>>> filter(None,(False,0)) ()【例2】有函數:返回0-100內的奇數 >>> filter(odd,range(0,100)) [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]>>> filter(lambda x : x%2 , range(100)) [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]2. map :映射
>>> map(lambda x:x%2,range(10)) [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]>>> map(lambda x:x*2,range(10)) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]>>> map(lambda x : x-1 , range(10)) [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8] 解釋:把range(10)形成的列表list中的每一個元素依次取出來, 再調用function,最后返回生成序列。總結
以上是生活随笔為你收集整理的9.匿名函数:lambda表达式/filter()/map()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8.局部变量/全局变量global/内嵌
- 下一篇: 10.递归是神马?recursion