Python 之高階函數(shù)(map/reduce/sorted/filter)

1.map : map(func, Iterable) map 接受兩個參數(shù),一個是函數(shù)一個是Iterable,map將Iterable 的每個元素賦值到函數(shù)上并返回一個新的Iterable。
例如:#定義一個函數(shù) 可以是任意個復(fù)雜的函數(shù)
def f(x):
return 2 * x - 1
r = map(f, range(1, 11))
list1 = list(r)
print(list1)#[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

2.reduce:reduce(func,list) reduce接受兩個參數(shù),一個函數(shù),一個序列,reduce將list的元素和函數(shù)返回的結(jié)果繼續(xù)做為函數(shù)的參數(shù)繼續(xù)下去... 如下:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
例如:#定義一個函數(shù)
def add(x, y):
return x + y
sum = reduce(add, range(1, 101))
print(sum)#5050
例:
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def char2num(s):
return DIGITS[s]
def str2int(s):
return reduce(lambda x, y: x * 10 + y, map(char2num, s))

3.sorted:sorted(list), sorted函數(shù)接受一個list,將list進(jìn)行排序
例如:sorted([2, 1, 5, 8])#[1, 2, 5, 8]
sorted可以接受一個key函數(shù)來實現(xiàn)自定義的排序
例:sorted([-2, 1, 5, 8], key = abs) #[1, -2, 5, 8]

4.filter: filter(func, list) filter也是接受兩個參數(shù),一個函數(shù)和一個序列,filter將list的每個元素作為參數(shù)傳入函數(shù),然后根據(jù)結(jié)果是True還是False決定保留還是丟棄該元素。返回一個Iterable(惰性序列) 需要list轉(zhuǎn)化為一個序列查看
例如:#創(chuàng)建一個函數(shù)
def is_char(s):
return isinstance(s, int)
list1 = list(filter(is_char, [1, '2', 3, '4', 5, '6']))
print(list1)#[1, 3, 5]

持續(xù)更新~??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容