python初步學習 python函式 二

2022-07-26 16:06:11 字數 2667 閱讀 4347

python是支援多種范型的語言,可以進行所謂函式式程式設計,其突出體現在有這麼幾個函式:

filter、map、reduce、lambda、yield

>>> g = lambda x,y:x+y  #x+y,並返回結果

>>> g(3,4)

7>>> (lambda x:x**2)(4) #返回4的平方

16

lambda函式的使用方法:

冒號後面是表示式,表示式計算結果就是本函式的返回值

比如,要列印乙個list,裡面依次是某個數字的1次方,二次方,三次方,四次方。用lambda可以這樣做:

>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]

>>> for i in lamb:

... print i(3),

...

3 9 27 81

map()python的乙個內建函式,它的基本樣式是:

map(func,seq)

func是乙個函式,seq是乙個序列物件。在執行的時候,序列物件中的每個元素,按照從左到右的順序,依次被取出來,並放入到func那個函式裡面,並將func的返回值依次存到乙個list中。如

>>> items = [1,2,3,4,5]

>>> squared =

>>> for i in items:

...

>>> squared

[1, 4, 9, 16, 25]

>>> def sqr(x): return x**2

...

>>> map(sqr,items)

[1, 4, 9, 16, 25]

>>> map(lambda x: x**2, items)

[1, 4, 9, 16, 25]

>>> [ x**2 for x in items ] #這個我最喜歡了,一般情況下速度足夠快,而且可讀性強

[1, 4, 9, 16, 25]

要點:

繼續下面兩個例子:

>>> lst1 = [1,2,3,4,5]

>>> lst2 = [6,7,8,9,0]

>>> map(lambda x,y: x+y, lst1,lst2) #將兩個列表中的對應項加起來,並返回乙個結果列表

[7, 9, 11, 13, 5]

>>> lst1 = [1,2,3,4,5]

>>> lst2 = [6,7,8,9,0]

>>> lst3 = [7,8,9,2,1]

>>> map(lambda x,y,z: x+y+z, lst1,lst2,lst3)

[14, 17, 20, 15, 6]

可以看到map函式的強大和簡潔。如果使用for迴圈將會很繁瑣

直接看例子:

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

15

reduce函式的計算方式是將列表中的元素累加,((((1+2)+3)+4)+5)=15

與map函式相比較就可以看出兩者之間的區別。map是上下運算,reduce是橫著逐個元素進行運算。

reduce含可以接受第三個值作為初始值:例如

>>> reduce(lambda x,y: x+y,[1,2,3,4,5],100)

115

上述列表中計算將以100為初始值執行累加計算,先計算 100+1

filter的中文含義是「過濾器」,在python中,它就是起到了過濾器的作用.

通過下面**體會:

>>> numbers = range(-5,5)

>>> numbers

[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]

>>> filter(lambda x: x>0, numbers)

[1, 2, 3, 4]

>>> [x for x in numbers if x>0] #與上面那句等效

[1, 2, 3, 4]

>>> filter(lambda x: x > 3, [1,2,3,4,5])

[4,5]

拜讀下filter的官方文件解釋:

filter(...)

filter(function or none, sequence) -> list, tuple, or string

return those items of sequence for which function(item) is true. if

function is none, return the items that are true. if sequence is a tuple

or string, return the same type, else return a list.

python初步學習

在這裡插入描述 idle python整合開發環境,也稱互動模式,具備基本的ide功能,是非商業python開發不錯選擇 python3.7是python的命令控制台,視窗和windows下的命令視窗一樣,不過只能執行python命令 python3.7manuals是純英文的幫助文件 module...

Python程式設計學習初步

python控制語句 1 選擇語句 if 最簡單的二選一,if後跟布林表示式,為true,執行true下的語句,為fail,執行fail下的語句 if booleanexpression suite of python statement rest of the python program 基本的...

Python初步學習(一)

參考該課程 1 win r cmd python 回車,進入python直譯器 1 使用print 函式輸出字串,進行簡單計算 使用input 函式,獲取使用者輸入 2 python中的基本資料型別 整形 int 浮點型 float 布林型 boolean 字串 str,單引號,雙引號,三單引號,轉...