Python中四大高階函數,你認識幾個

1.匿名函數

def name(a,b):
    return a+b

f=lambda a,b:a+b
print(f(15,15))

2.map函數

第一個參數接收一個函數名,第二個參數接收一個可迭代對象,利用map,lambda表達式將所有偶數元素加100

def fun(a,b):
    return a+b

ret=map(fun,[1,2,3],[4,5,6])
print(list(ret))

3.sorted函數

"""sorted排序(由負及正)"""
list=[1,2,3,4,0,-1,-2,-3]

print(sorted(list,key=lambda x:x))

"""sorted排序(絕對值)"""
list=[1,2,3,4,0,-1,-2,-3]

print(sorted(list,key=abs))

sorted() 函數對所有可迭代的對象進行排序操作。
sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。 list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。

sorted 語法:

sorted(iterable[, cmp[, key[, reverse]]])

參數說明:

  • iterable -- 可迭代對象。
  • cmp -- 比較的函數,這個具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規則爲,大於則返回1,小於則返回-1,等於則返回0。
  • key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
  • reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。

4.reduce函數

"""reduce()函數(最好用來求總和總乘)"""
from functools import reduce
def fun(a,b):
    return a+b
ret=reduce(fun,[x for x in range(1,101)])
print(ret)#1到100的總和爲5050
ret=reduce(fun,[x for x in range(1,101)ifx%2==0])
print(ret)#1到100的偶數總和爲2550
ret=reduce(fun,[x for x in range(1,101)ifx%2==1])
print(ret)#1到100的奇數總和爲2500

5.filter函數

"""filter()函數(能夠去出符合條件的元素)"""
#學習中遇到問題沒人解答?小編創建了一個Python學習交流羣:711312441
def fun(a):
    return a%2==0
ret=filter(fun,range(1,101))
for x in ret:
    print(x)

filter()函數可以對序列做過濾處理,就是說可以使用一個自定的函數過濾一個序列,把序列的每一項傳到自定義的過濾函數裏處理,並返回結果做過濾。

最終一次性返回過濾後的結果。

filter()函數有兩個參數:

  • 第一個,自定函數名,必須的
  • 第二個,需要過濾的列,也是必須的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章