note10 高階函式

2021-07-12 05:44:00 字數 1035 閱讀 5539

1、函式可以直接賦值給變數,變數可以指向函式

>>>f = abs

>>>f(-10)

10

2、函式名其實就是指向函式的變數,可以把函式名看作變數

3、乙個函式可以接收另乙個函式作為引數,這種函式稱之為高階函式

4、map()函式接收兩個引數,乙個是函式,乙個是iterable,map()將傳入的函式依次作用到序列的每個元素,然後把新結果作為新的iterator返回

也就是一堆定義值返回一堆函式值

>>>def f(x)

... return x*x

...>>> r = map(f,[1,2,3,4,5,6,7,8,9])

>>>list(r)

[1,4,9,16,25.....]

5、map類似於群攻

>>> list(map(str,[1,2,3,4,5,6,7,8,9]))

['1','2','3','4'.......]

6、reduce函式()把乙個函式作用在乙個序列上,reduce把結果和序列的下乙個元素做累計計算

>>> 

from functools import reduce

>>>

defadd

(x, y):

...

return x + y

...>>> reduce(add, [1, 3, 5, 7, 9])

25

也可以用sum(),如果想把序列換成整數13579,reduce就非常方便

>>> 

from functools import reduce

>>>

deffn

(x, y):

...

return x * 10 + y

...>>> reduce(fn, [1, 3, 5, 7, 9])

13579

資料結構note10 折半插入排序

instruction of project author aruiea.com classname binaryinsertsort version 1.0 date 2020 8 2 14 13 折半插入排序 是對插入排序的一種改進,增加了二分法 把已排序部分,首元素定位low,末尾元素定為hi...

10 高階函式

乙個最簡單的高階函式 def add x,y,f return f x f y 當我們呼叫add 5,6,abs 時,引數x,y和f分別接收 5,6和abs,根據函式定義,我們可以推導計算過程為 x 5 y 6 f abs f x f y abs 5 abs 6 11 return 11 add 5...

10 函式高階

今日主要內容 1.動態傳參 重點 形參 聚合 位置引數 元組 關鍵字 字典 實參 打散 列表,字串,元素 字典 形參順序 重點 位置,args,預設值,kwargs 無敵傳參 def func args,kwargs arguments引數 keyword arguments關鍵字引數 pass 2...