400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Python高階函數

【Python基礎知識】Python高階函數

  • 發(fā)布: python培訓
  • 來源:python干貨資料
  • 2020-11-25 10:59:12
  • 閱讀()
  • 分享
  • 手機端入口
(3)map()函數

map()函數的語法格式如下:

map(func, seq)

map()函數中有兩個參數,第一個參數是函數func,第二個參數是序列seq。map()是一個映射函數,根據提供的函數對指定的序列做映射。map()函數是以序列seq中的每一項作為參數依次調用函數func,返回包含每次函數func返回值的map對象。

map()函數的第一個參數函數func可以是內建函數,也可以是自定義函數,甚至可以是匿名函數;第二個參數序列seq可以是列表、元組、字符串等。

例如,map()函數的第一個參數是內建函數,第二個參數是列表:

  1. >>> alist = [1, -2, -3
  2. >>> print(list(map(abs, alist))) 
  3. [123

在上述程序中,abs是絕對值函數。由于map()函數的返回值是map對象,因此,使用list()方法將其轉換成列表。

例如,map()函數的第一個參數是自定義函數,第二個參數是元組:

  1. >>> def f(x): 
  2. ...     return x ** 2 
  3. ... 
  4. >>> print(list(map(f, (24710)))) 
  5. [41649100

上述程序也可以改成匿名函數的形式:

  1. >>> print(list(map(lambda x: x ** 2, (24710)))) 
  2. [41649100

(4)filter()函數

filter()函數的語法格式如下:

filter(func, seq)

filter()是一個過濾器函數,用于過濾掉序列中不符合條件的項。filter()函數以序列seq中的每一項作為參數依次調用函數func進行判斷,函數func返回True或False,將返回值為True的項放進filter對象中返回。

例如,過濾掉列表[7,10,13,16,17,19,21,22,26,28,29]中的奇數項,只輸出偶數項:

  1. >>> def fun(x): 
  2. ...     if x % 2 == 0
  3. ...         return x 
  4. ... 
  5. >>> alist = [710131617192122262829
  6. >>> print(list(filter(fun, alist))) 
  7. [1016222628

(5)reduce()函數

reduce()函數的語法格式如下:

reduce(func, seq[, init])

其中,init是一個可選參數,表示初始值。注意,在使用reduce()函數前要導入from functools import reduce。

reduce()是一個累計函數,其實現(xiàn)原理:如果存在init參數,即有初始值,那么將初始值和序列seq的第1項作為參數傳值給函數func進行運算,再將返回值與序列seq的第2項作為參數傳值給函數func進行運算……這樣依次將返回值與序列seq的下一項作為參數傳值給函數func進行運算,直到序列最后一項運算完為止,返回最終的運算結果。如果不存在init參數,那么將序列seq的第1項和第2項作為參數傳值給函數func進行運算,再將返回值與序列seq的第3項作為參數傳值給函數func進行運算……這樣依次將返回值與序列seq的下一項作為參數傳值給函數func進行運算,直到序列最后一項運算完為止,返回最終的運算結果。

例如,初始值為100,對列表[1,2,3]使用reduce()函數進行累乘:

  1. >>> from functools import reduce 
  2. >>> alist = [123
  3. >>> def fun(x,y): 
  4. ...     return x * y 
  5. ... 
  6. >>> print(reduce(fun, alist, 100)) 
  7. 600 

上述程序的功能等價于如下代碼:

  1. >>> alist = [1,2,3
  2. >>> num = 100 
  3. >>> sum = alist[0] * num 
  4. >>> for i in range(len(alist) -1): 
  5. ...     sum *=  alist[i+1
  6. ... 
  7. >>> print(sum) 
  8. 600 

 

文章“【Python基礎知識】Python高階函數”已幫助

>>本文地址:http://hqfphsz.com/zhuanye/2020/61386.html

THE END  

聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯(lián)網營銷互聯(lián)網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發(fā)VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME