Python入門基礎(8)

咕嚕咕嚕學程式設計發表於2019-07-20

上一篇介紹了一些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]

 

相關文章