python 高階函數

來源:互聯網
上載者:User

標籤:列表   函數返回   close   存在   接受   函數   ted   for   sed   

函數式編程

用一系列函數解決問題

傳入參數一定,結果必一定(只有一個輸入一個輸出)

1 def myadd(x, y):# 不可重新進入函數:2     return x + y3 y = 2004 def myadd2(x):#可重新進入函數5     return x + y6 print(myadd2(10))  # 2107 y = 3008 print(myadd2(10))  # 310

 

函數式編程的要求:

  建立函數最好不要訪問局部範圍以外的變數,這樣可以保證返回結果的唯一性(可重新進入性)

高階函數

滿足下麵條件之一的為高階函數:

  1、函數接受一個或者多個函數作為參數傳入

  2、函數返回一個函數

python內建的高階函數:

  map、filter、sorted

map函數:

  第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數傳回值的新列表。

  格式:

    map(func,iterables1,,iterables2,.........)

  參數:

  • function -- 函數,有一個或兩個參數
  • iterable -- 一個或多個序列

  傳回值

  • Python 2.x 返回列表。
  • Python 3.x 返回迭代器
 1 def power(x): 2     return x**2 3 # for x in map(power,range(1,10)): 4 #     print(x) 5 # for x in map(lambda x :x**2,range(1,10)): 6 #     print(x) 7 print(list(map(power,range(1,10)))) 8 #[1, 4, 9, 16, 25, 36, 49, 64, 81] 9 10 # 提供了兩個列表,對相同位置的列表資料進行相加11 print(list(map(lambda x,y:x+y,[1,2,3,4],[4,3,2,1])))12 #[5, 5, 5, 5]13 #必須要加list,不加list返回的是記憶體位址14 #<map object at 0x0000022754376278>15 16 #求:1 ** 9 + 2 ** 8 + 3 ** 7 + ......9 ** 117 s = 018 for x in map(pow, range(1, 10), range(9, 0, -1)):19     s += x20 print(s)
map(function,iterable...)

 

 

filter函數:

  函數用於過濾序列,過濾掉不合格元素,返回由符合條件元素組成的新列表。

  該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後返回  True 或 False,最後將返回 True 的元素放到新列表中。

  文法:

    filter(function,iterable)

  參數:

    function——判斷函數

    iterable——可迭代函數

此處插入代碼1

此處插入代碼2

sorted函數:

  將原可迭代對象的資料進行排序,產生排序後的列表

sort與sorted區別:

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

  文法

    sorted(iterable,key,reverse)

    iterable:可迭代對象

    key:主要用來進行元素比較,只有一個參數,具體的函數的參數就是取值與可迭代對象中,指定可迭代對象中的一個元素來進行排序

    reverse:定序,reverse = True 降序 , reverse = False 升序(預設)

  傳回值:

    返回重新排序的列表

 

python 高階函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.