python的三個高階函式

2021-10-25 13:55:34 字數 1970 閱讀 6604

自己寫的筆記哈

(1):map()

指把乙個可呼叫物件func依次對映到序列的每個元素上,並返回乙個可迭代的map物件,但是map物件中的每個元素只能使用乙個。

可呼叫物件func可以是系統自帶函式,使用者自定義函式,lambda。

data =

map(

str,

range(5

))data2 =

map(

lambda x :

str(x)

,range(5

))print

(data)

print

(list

(data)

)print

(list

(data2)

)

結果為:

<

mapobject at 0x000001e37cbfe7c8

>

['0'

,'1'

,'2'

,'3'

,'4'][

'0',

'1',

'2',

'3',

'4']

第二個例子:

a =

map(

len,

['abc'

,'1234'])

b =map

(lambda y :

len(y),[

'abc'

,'1234'])

print

(list

(a))

print

(list

(b))

結果為:

[3,

4][3

,4]

(2):reduce()

指的是將乙個接受2個引數以迭代的方式從左到右依次作用到乙個序列或可迭代物件的所有元素上,reduce()函式需要從標準庫中匯入後才能使用。

from functools import

reduce

#匯入函式

from operator import add

a =range(1

,6)print

(reduce

(add, a)

)b =

reduce

(lambda x, y : x+y, a)

print

(b)

結果為:

15

15

(3)filter()

用於使用指定函式描述的規則對序列中的元素進行過濾,返回乙個filter物件。

a =[1

,2,3

,4,5

,6,7

,8,9

,10]def

f1(x)

:return x %2==

1#奇數

lst1 =

filter

(f1, a)

print

(list

(lst1)

)

結果:

[1,

3,5,

7,9]

還可以寫為lambda表示式

a =[1

,2,3

,4,5

,6,7

,8,9

,10]lst2 =

filter

(lambda x : x %2==

1, a)

print

(list

(lst2)

)

結果:

[1,

3,5,

7,9]

常用的三個內建高階函式

功能 將傳 的函式變數func作 到lst變數的每個元素中,並將結果組成新的列表 語法 map 引數1,引數2 引數1 功能函式func,注意不帶括號 引數2 可迭代物件,func函式將會作用到該可迭代物件中的每乙個元素中 示例 計算 list1 序列中各個數字的2次 list1 1 2,3 4,5...

JS中的三個高階函式

const nums 2,3,5,1,77,55,100,200 要求獲取nums中大於50的數 函式會遍歷nums中每乙個數,傳入 函式,在 函式中寫判斷邏輯,返回true則會被陣列接收,false會被拒絕 let newnums nums.filter function num return f...

Python的三個重要函式詳解

目錄 map函式用於遍歷序列,對序列中每個元素進行操作,最終獲取新的序列。lis 2,3,4,5 new list map lambda x x 10,lis list new list a 7,8,9,10 b 10,new ab map lambda x,y x y,a,b list new a...