python高階函式和匿名函式

2021-09-21 04:26:50 字數 1452 閱讀 2807

高階函式

允許將函式本身作為引數傳入另乙個函式;

允許返回乙個函式。

允許返回乙個函式。

map()函式

map的第乙個引數為自定義函式,第二個引數為自定義可迭代物件

例子#定義乙個函式f2求平方,使用map函式,求list1的值的平方,list1平方規則按照f2函式執行,返回結果型別為list。

list1 = [1, 2, 3, 4, 5,]

def f2(x):

return x*x 

list2 = map(f2, list1)

print type(list2)

print list2

reduce()函式

必須接收兩個引數,最多接收三個引數。

例子#定義乙個函式f求和,使用reduce函式,求list1相加的值,再加20。list1相加規則按照f函式執行,先執行1+2,再用1+2的值與3相加,以此類推

list1 = [1, 2, 3, 4, 5,]

def f(x, y):

return x+y

print reduce(f,list1,20)

filter()函式

會將可迭代物件元素傳入,如果返回true則保留,如果返回false則不保留元素

例子:a = [1, 2, 3, 4, 5, 6, 7]

def f(x):

return x%2 == 1

b = list(filter(f,a))

#python3.5.1需要將filter轉換為list再進行輸出

print (b)

sorted()函式

可以針對所有的可迭代物件進行排序,返回乙個新的list

使用方法:

sorted(...)  

sorted(iterable, cmp=none, key=none, reverse=false) --> new sorted list

cmp:有兩個引數,引數的值都是從可迭代物件中取出,此函式的規則:大於返回1,小於返回-1,等於返回0

key:具體的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素進行排序

reverse:判斷是否反轉,預設情況下不反轉

例子dic1 =

print(dic1)

for key, value in dic1.items():

print(key, value)

d = sorted(dic1.items())

print(d)

匿名函式

不需要顯示定義的函式,沒有名字的函式

例子def f2(x,y):

return x+y

等於c = lambda x1,y1:x1+y1

print(c(4,5))

例子def build(x2, y2):

return lambda: x2 * x2 + y2 * y2

Python高階函式 匿名函式

當我們在傳入函式時,有些時候,不需要顯示定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x 2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 list map lambda x x x,1,1,2,3,4,5,6,7,8,9...

Python 函式高階 匿名函式

不需要使用def去定義,也不用給函式取名字,用lambda表示式來定義,這種函式叫做匿名函式 lambda 引數 表示式 作為返回值 將以下函式改為匿名函式 普通函式 def func var1 return var1 2 匿名函式寫法 lambda var1 var1 2 匿名函式定義後可以直接呼...

高階函式和匿名函式

1.高階函式 高階函式就是把函式當成引數傳遞的函式。例如 def add x,y,f return f x f y print add 4,3,abs 結果是 7 map 函式 map 函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函...