對於簡單的函式,也存在一種簡便的表示方式,即:lambda表示式
#普通函式上面這種方法,都實現了將1000+1的結果列印出來的這個功能,但是用下面的lambda存在的意義就是對簡單函式的簡潔表達。def func(a):
return a+1
print ('test1_func0:',func(1000))
#lambda表示式
func0 = lambda a:a+1
print ('test2_func0:',func0(1000))
filter(處理邏輯, 可遍歷物件)遍歷序列中的每個元素,判斷每個元素的布林值為true則保留元素.
用法:返回執行結果為true的入參(入參是列表字元元組)
map函式,我們使用map函式將會對列表中的所有元素進行操作。1 li = [11, 22, 33]2 new_list = filter(lambda arg: arg > 22, li)
3 print (new_list)
輸出:[33]
map有兩個引數(函式,列表),它會在內部遍歷列表中的每乙個元素,執行傳遞過來的函式引數。在輸出到新列表中。
用法:對列表入參依次執行函式。入參為列表,有多少個列表,就應該有多少個入參。
reduce(函式, 序列, 預設空引數)處理乙個序列, 然後把寫進行合作操作1 li = [11, 22, 33]2 new_list = map(lambda a: a + 100, li)
輸出:[111, 122, 133]
reduce函式,對於序列內所有元素進行累計操作
用法:對列表入參依次執行函式。入參為列表,有多少個列表,就應該有多少個入參。
sort是容器的函式,sorted是python的內建函式相同的引數1 lst = [11,22,33]2 func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
3 print ('func2:',func2)
輸出:func2: 66
簡單解釋一下兩函式:
sort(cmp=none, key=none, reverse=false)1.對於乙個無序的列表a,呼叫a.sort(),對a進行排序後返回a。sorted(iterable, cmp=none, key=none, reverse=false)
sort是容器的函式,sorted是python的內建函式相同的引數。
cmp:用於比較的函式,比較什麼由key決定,有預設值,迭代集合中的一項。cmp(e1, e2) 是帶兩個引數的比較函式, 返回值:
負數: e1 < e2,
0: e1 == e2,
正數: e1 > e2。
預設為 none, 即用內建的比較函式。
key:用列表元素的某個已命名的屬性或函式(只有乙個引數並且返回乙個用於排序的值)作為關鍵字,有預設值,迭代集合中的一項。
reverse:排序規則,reverse = true 或者 reverse = false,有預設值。
而對於同樣乙個無序的列表a,呼叫sorted(a),對a進行排序後返回乙個新的列表,而對a不產生影響。
>>> a=[1,3,5,2,9,4,7,8,6,0]複雜點的>>> a.sort()
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a=[1,3,5,2,9,4,7,8,6,0]
>>> sorted(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [1, 3, 5, 2, 9, 4, 7, 8, 6, 0]
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]當list由tuple組成時,預設情況下,sort和sorted都會根據tuplp[0]作為排序的key進行排序>>> list1.sort()
>>> list1
[(4, 'wutenglan', 30), (6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25)]
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]
>>> sorted(list1)
[(4, 'wutenglan', 30), (6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25)]
>>> list1
[(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
1.基於key函式排序:
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]2.基於cmp函式排序:>>> list1.sort(key=lambda employee : employee[2])
>>> list1
[(6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25), (4, 'wutenglan', 30)]
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]
>>> sorted(list1,key=lambda employee : employee[2])
[(6, 'cangjingkong', 20), (7, 'boduoyejiyi', 25), (4, 'wutenglan', 30)]
>>> list1
[(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]3.基於公升序/降序排序:>>> list1.sort(cmp=lambda x,y : cmp(x[1],y[1]))
>>> list1
[(7, 'boduoyejiyi', 25), (6, 'cangjingkong', 20), (4, 'wutenglan', 30)]
>>> list1=[(6,'cangjingkong',20),(4,'wutenglan',30),(7,'boduoyejiyi',25)]
>>> sorted(list1,cmp=lambda x,y : cmp(x[1],y[1]))
[(7, 'boduoyejiyi', 25), (6, 'cangjingkong', 20), (4, 'wutenglan', 30)]
>>> list1
[(6, 'cangjingkong', 20), (4, 'wutenglan', 30), (7, 'boduoyejiyi', 25)]
>>> a=[1,3,5,2,9,4,7,8,6,0]>>> a.sort(reverse=false)
>>> a
[0, 1, 2, 3, 4, 5,
python lambda表示式與內建函式
目錄super 用於表示簡單的函式 lambda表示式,為了解決簡單函式的情況 def func a1,a2 func lambda a1,a2 a1 a2 函式直接得到返回值,這裡隱藏了return return a1 a2 簡化 三元運算,為了解決簡單的if else的情況,如 if 1 1 a...
python lambda函式 與 函式式程式設計
lambda函式又名匿名函式。顧名思義,匿名函式,那肯定就是沒有函式名稱啦。先看個最簡單的例子 先寫個正常的函式 def f x return x 1很簡單,不解釋。如果寫成lambda函式 g lambda x x 1 print g print g 2 at 0x1007cc668 3由此可見g...
python lambda函式基礎
本文,我們學習python lambda函式。首先,看一下python lambda函式的語法,如下 f lambda parameter1,parameter2,expression lambda語句中,冒號前是引數,可以有0個或多個,用逗號隔開,冒號右邊是返回值。lambda語句構建的其實是乙個...