Python基礎【高階函數】
阿新 • • 發佈:2018-12-14
sort python UNC 一個 type fff 轉換 每次 函數 高階函數
map(fun,seq)
將seq中的元素依次作為參數傳入fun,返回由函數返回值組成的新的列表。
python3:返回一個map對象
python2:返回列表
可以用list將對象轉換為列表進行調用代碼:
def fun(a): return a+1 print(map(fun,[1,2,3,4,5])) print(list(map(fun,[1,2,3,4,5])))
輸出結果:
filter(fun,seq)
函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該函數接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。python3:返回一個filter對象
python2:返回列表
代碼:
def fun(a): return True if a%2==1 else False print(filter(fun,[1,2,3,4,5])) print(list(filter(fun,[1,2,3,4,5])))
輸出結果:
reduce(fun,seq)
reduce傳入一個函數一個序列
fun的參數必須是2個
首次將seq中前兩個元素傳入fun中,隨後每次將返回值和下一個元素作為新的參數傳入函數,直到傳入序列中最後一個元素為止,返回一個最後的返回值。
reduce()是python2中的內置函數
python3中需要導入funtools包。from funtools import reduce
代碼:
import functools from functools import reduce def fun(a,b): return a+b print(reduce(fun,[1,2,3,4,5]))
輸出結果:
sorted(seq,key=...,reverse=...)
函數對所有可叠代的對象進行排序操作。
返回一個由seq序列組成的新的序列
利用key可對需要排序的元素進行篩選代碼:
print(sorted([3,1,2,5,4],reverse=True)) ## 逆序 print(sorted([3,1,2,5,4],key=lambda x:x*-1)) ## 取參數的相反數進行排序
輸出結果:
Python基礎【高階函數】