高階函式
允許將函式本身作為引數傳入另乙個函式;
允許返回乙個函式。
允許返回乙個函式。
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,然後返回乙個函...