国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python3中一些高階函數(shù)map、reduce、filter詳解及示例

在編程語言中,高階函數(shù)指的是接受函數(shù)作為輸入或輸出的函數(shù)。

map概述

python中的map()函數(shù)是一個內(nèi)置的高階函數(shù),一般用法是map(function, iterable)。需要傳入一個函數(shù),這個函數(shù)可以是內(nèi)置的,也可以是自己定義,也可以是匿名函數(shù)即lambda。第二個參數(shù)是一個可迭代對象,如列表、字典字符串等。map函數(shù)返回的是一個map對象,也是一個可迭代對象,可以利用for循環(huán)迭代查看元素,也可以嘗試list()將其轉(zhuǎn)為列表對象操作,map形式:

map(function, iterable, ...)

map用法

1.計(jì)算列表中所有數(shù)的平方

L1 = [1, 2, 3, 4]# 計(jì)算某數(shù)的平方def square(x): return x ** 2square_result = map(square, L1)print(list(square_result))# 配合lambda最佳square_result = map(lambda x: x ** 2, L1)print(list(square_result))

示例結(jié)果:

[1, 4, 9, 16][1, 4, 9, 16]

2. 處理序列對象中的字符串

# 集中處理字符串開頭和結(jié)尾的換行符和空格S = [ 'I like Python\r', '\t\n Python make me happy \n', ' without python, without living.']NEW_S = list(map(lambda s: s.strip(), S))print(NEW_S)# 當(dāng)然此例利用列表解析更加簡潔:NEW_S = [s.strip() for s in S]print(NEW_S)

示例結(jié)果:

['I like Python', 'Python make me happy', 'without python, without living.']['I like Python', 'Python make me happy', 'without python, without living.']

多參數(shù)傳遞

map也接受多個可迭代對象作為參數(shù)傳遞,若可迭代對象元素?cái)?shù)量不一致則傳遞至元素?cái)?shù)量最小的為止

# 兩組數(shù)兩兩相加L1 = [1, 2, 3, 4, 5, 6, 7]L2 = [5, 4, 3, 2, 1]sum_result = map(lambda x, y: x y, L1, L2)for one in sum_result: print(one)

示例結(jié)果:

66666

reduce概述

reduce用于對可迭代對象中的元素進(jìn)行累積操作,reduce接受兩個參數(shù),一個是函數(shù)f(x, y)參數(shù)(該函數(shù)必須有兩個參數(shù)),另一個是可迭代對象。reduce行為是先將可迭代對象的前兩個元素傳入f(x, y)中,然后不斷將f(x, y)的返回值再次和下一個迭代對象傳入f(x, y),直到迭代完迭代對象中的元素,并返回最終的f(x, y)的返回值。reduce形式:

reduce(function, iterable[, initializer])

reduce用法

在 Python3 中,reduce() 函數(shù)已經(jīng)被從全局名字空間里移除了,它現(xiàn)在被放置在 functools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調(diào)用 reduce() 函數(shù)。

from functools import reduceL = [1,2,3,4,5]sum_results = reduce(lambda x,y: x y, L) print(sum_results)

示例結(jié)果:

15

上例即我們通過reduce高階函數(shù)完成了對列表中五個數(shù)的累加過程。

filter概述

filter用于過濾篩選可迭代對象中的元素,如果符合條件則返回對應(yīng)的元素序列(類型為filter),filter接受兩個參數(shù),一個是函數(shù)用于篩選元素,返回值為True或Flase,另一個是可迭代對象。

filter用法

evens = filter(is_odd, range(-5, 10))print(list(evens))

示例結(jié)果:

[2, 4, 6, 8]
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python高階函數(shù)
Python 最頻繁使用的4個函數(shù):lambda、 map、filter 和 reduce
10分鐘快速入門Python函數(shù)式編程
10分鐘學(xué)習(xí)函數(shù)式Python
python小課堂28
如何用Map、Filter和Reduce替換Python For循環(huán)?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服