一.高階函式
把函式當做引數傳遞的一種函式
1》map()函式
map函式是python內建的乙個高階函式,它接受乙個函式f和乙個list,並把list元素以此傳遞給函式f,然後返回乙個函式f處理完所有list元素的列表,如下所示:
#map()函式,傳入的必須是乙個可迭代的物件
lt = [1,2,3,4,5]
# lt = [1,2,3,4,5]
def f2(x):
return x*x
ml = map(f2,lt)
print type(ml)
print ml
>>>
[1, 4, 9, 16, 25]
2>reduce()函式
reduce()函式也是python內建的乙個高階函式,reduce()函式接收的引數和map()類似,乙個函式f,乙個list,但行為和map()不同,reduce()傳入的函式f必須接收兩個引數,第一次呼叫是把list的前兩個元素傳遞給f,第二次呼叫時,就是把前兩個list元素的計算結果當成乙個引數,list的第三個元素當成第二個引數,傳入f進行操作,以後以此類推,並返回最終結果值。
##reduce()函式
def f(x,y):
return x + y
print reduce(f,[1,2,3,4,5],10)
>>> 25
解釋:1.計算 a = f(1,2)的值為3
2.計算 b = f(a,3)的值為6
3,計算c = f(b,4)的值為10
4,計算d = f(c,5)的值為15
5,計算f(d,10)的值為25
其實就是相當於 1+2+3+4+5+10,最後10是乙個預設值,及最終在執行一次。
3》filter()函式
filter英文單詞就是過濾的意思,filter()函式是python內建的另乙個有用的高階函式,filter() 函式接收乙個函式f和乙個list,這個函式f的作用是對每個元素進行判斷,返回true或flase,filter() 根據判斷結果自動過濾不符合條件的元素,返回由符合條件元素組成的新list,例子如下:
###filter() 函式每次把可迭代物件的元素傳入進去,如果返回未true,則保留該元素,如果返回為false,則不保留.該函式是保留真的,過濾掉假的
a = [1,2,3,4,5,6]
def is_old(x):
return x%2 ==1
#帶入實參is_old=5 傳入
# print is_old(5)
#帶入實參,列表a傳入
print filter(is_old,a)
>>> true
>>> [1, 3, 5]
Python基礎 42 匿名函式lambda
lambda是乙個匿名函式,在定義函式的時候,不想給函式起乙個名字時可以使用匿名函式,用乙個變數儲存結果即可。通常這個 匿名函式是不會被重複使用的 語法 lambda 引數 表示式 注 不能有迴圈和return demo1定義乙個匿名函式 定義乙個匿名函式實現加法計算 sum res lambda ...
python基礎 高階函式
把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...
python筆記 009 函式(上)
迭代是python最強大的功能之一,是訪問集合元素的一種方式 迭代器是乙個可以記住遍歷的位置的物件 迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退 迭代器有兩個基本的方法 iter 和 next 字串,列表或元組物件都可用於建立迭代器 numbers 1,2...