匿名函式 lambda(一分鐘讀懂)

2021-10-25 05:14:58 字數 1797 閱讀 7715

匿名函式-lambda

1.一種快速定義單行的最小函式

2.是從lisp借用來的,可以用在任何需要函式的地方

3.省去函式定義的過程

4.只用一次

普通模式

from functools import

reduce

deffn1

(x,y)

:return x+y

d =reduce

(fn1,[1

,2,3

,4,5

])print

(d)# 結果為15

使用lambda

'''

lambda x,y:x+y # 這個 返回的是乙個函式物件

'''e =

lambda x,y:x+y # lambda 引數:返回的值

print

(e(3,4

))# 結果為 7

print

(e(4,5

))# 結果為 9

使用lambda加函式

from functools import

reduce

d =reduce

(lambda x,y:x+y ,[1

,2,3

,4,5

,6])

print

(d)# 返回的為 21

使用的案例如:

f =[2

,4,6

,8,10

,12,14

,16,18

,20]print

filter

(lambda x: x%3==

0,f)

print

map(

lambda x: x *2+

1,f)

print

reduce

(lambda x,y:x+y,f)

關於reduce 函式的解釋

'''

help on built-in function reduce in module _functools:

reduce(...)

reduce(function, sequence[, initial]) -> value

from left to right, so as to reduce the sequence to a single value.

for example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates

((((1+2)+3)+4)+5). if initial is present, it is placed before the items

of the sequence in the calculation, and serves as a default when the

sequence is empty.

將兩個自變數的函式從左到右累加地應用於序列中的項,以便將序列縮減為單個值。

例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])計算((((1+2)+3)+4)+5)。

如果存在初始值,則在計算中將其放在序列項之前,並在序列為空時用作預設值。

'''reduce

(fn1,(1

,2,3

,4,5

))# reduce 為逐次操作list裡的每一項,接受的引數為2個,最後返回的為乙個結果

一分鐘讀懂RPC協議

rpc是remote procedure call protoclo,稱為遠端過程呼叫協議,是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。該協議允許執行於一台計算機的程式呼叫另一台計算機的程式。程式設計師無需編為網路互動功能編碼。主要功能是讓構建分布式計算 應用 更容易,在...

安裝ipython(一分鐘讀懂)

公升級好pip 然後安裝ipython cmd 裡面直接輸入 python m pip install upgrade pip安裝ipython cmd 裡面直接輸入 pip install ipython進入ipython cmd 裡面直接輸入 ipython退出ipython exit使用ipy...

Python多重繼承 一分鐘讀懂

classa object deftest self print aaa classb object deftest self print b中的test def test2 self print bbb c c b pass class d a,b pass print c.bases 在pyth...