上一篇介紹了一些python中函式的基本用法,那麼,現在就來談一談python中的一些內建函式吧
- python中的內建函式
1.map()函式
map()函式接受兩個引數值,一個是函式,一個是Iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的Iterator返回
li = [1,2,3,4,5,6,7,8] print(list(map(lambda x:x*x,li)))
執行結果
[1, 4, 9, 16, 25, 36, 49, 64]
2.reduce()函式
reduce把一個函式作用在一個序列[x1,x2,x3,x4,x5....]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下一個元素做累積計算,如同
reduce(func,[1,2,3])等同於func(func(1,2),3)
from functools import reduce li = [1,2,3,4,5,6,7,8,9] print(reduce(lambda x,y:x*y,li)) #等同於1*2*3*4*5*6*7*8*9
執行結果:
362880
3.filter函式
filter()也是接收一個函式和一個序列,和map()不同的是,filter()把傳入的函式一次作用於每個元素,然後根據返回值是True還是False決定保留
還是丟棄該元素
#在一個列表中,刪掉偶數,只保留奇數 li = [1,2,4,5,6,9,10,15] print(list(filter(lambda x:x%2 == 1,li)))
執行結果:
[1, 5, 9, 15]
4.sorted(iterable,/,*,key = None,reverse = False)函式
接收一個key函式來實現對可迭代物件進行自定義的排序
可迭代物件:列表,字串,元組,集合,字典
key:接收一個函式,根據此函式返回的結果,進行排序
revese:排序方向,預設為從小到大,reveae = True為逆向
#對列表按照絕對值進行排序 li = [12,-23,17,-65,88,2] print(sorted(li,key=lambda x:abs(x)))
執行結果:
[2, 12, 17, -23, -65, 88]