1. 程式人生 > >Python基礎(reduce,filter,map函式)

Python基礎(reduce,filter,map函式)

map函式:

  map函式特點:對可迭代物件中的每個元素進行相同的操作(例如每個元素+1等等)

 1 #————————————————map函式————————————————————
 2 #對列表的各個元素實現加一功能
 3 li=[1,2,3]
 4 #定義一個加一函式
 5 def func1(x):
 6     return x+1
 7 
 8 #第一種map函式使用方式---lambda
 9 res1=map(lambda x:x+1,li)
10 print(list(res1))
11 
12 #第二種map函式使用方式---普通函式
13 res2=map(func1,li)
14 print(list(res2))
map函式兩種實現方式

reduce函式:

  reduce函式特點:從左到右對一個序列的項累計地應用有兩個引數的函式,以此合併序列到一個單一值。(例如累加或累乘列表元素等等)

 1 #————————————————reduce函式————————————————————
 2 #python3在使用reduce函式時需要匯入模組
 3 from functools import reduce
 4 nums=[1,2,3,4]
 5 
 6 #實現乘法的普通函式
 7 def func2(x,y):
 8     return
x*y 9 10 #第一種使用reduce函式的方式---lambda 11 res3=reduce(lambda x,y:x*y,nums) 12 print(res3) 13 14 #第二種使用reduce函式的方式---普通函式 15 res4=reduce(func2,nums) 16 print(res4)
reduce函式

 

filter函式:

    filter函式特點:對可迭代物件中的元素按照特定的條件進行篩選。(例如篩選列表中所有的偶數等等)

 

 1 #————————————————filter函式————————————————————
2 lis=[0,1,2,3,4,5,6] 3 4 #定義篩選偶數的普通函式一 5 def func3(x): 6 if x%2==0: 7 return x 8 9 #定義篩選偶數的普通函式二 10 def func4(x): 11 return x%2==0 12 13 #第一種使用filter函式的方式---lambda 14 res5=filter(lambda x:x%2==0,lis) 15 print(list(res5)) 16 17 18 #在使用兩個普通函式時使用時會有一些差異,第一種return 0被當做返回False,因此列表中沒有獲取到0這個元素,第二種則不會有這種情況。 19 20 #第二種使用filter函式的方式---普通函式一 21 res6=filter(func3,lis) 22 print(list(res6)) 23 24 #第二種使用filter函式的方式---普通函式二 25 res7=filter(func4,lis) 26 print(list(res7))
filter函式