最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python內(nèi)置函數(shù)map/filter/reduce詳解

 更新時(shí)間:2024年05月29日 14:27:18   作者:科雷軟件測(cè)試  
在Python中,map(), filter(), 和 reduce() 是內(nèi)置的高級(jí)函數(shù)(實(shí)際是class),用于處理可迭代對(duì)象(如列表、元組等)的元素,這篇文章主要介紹了python內(nèi)置函數(shù)map/filter/reduce的相關(guān)知識(shí),需要的朋友可以參考下

      在Python中,map(), filter(), 和 reduce() 是內(nèi)置的高級(jí)函數(shù)(實(shí)際是class),用于處理可迭代對(duì)象(如列表、元組等)的元素。這些函數(shù)通常與lambda函數(shù)一起使用,以簡(jiǎn)潔地表達(dá)常見(jiàn)的操作。下面我將分別解釋這三個(gè)函數(shù)。

1. map()函數(shù)

map() 函數(shù)將一個(gè)函數(shù)應(yīng)用于一個(gè)或多個(gè)可迭代對(duì)象的每個(gè)元素,并返回一個(gè)迭代器,該迭代器包含函數(shù)應(yīng)用于每個(gè)元素的結(jié)果。

以下是builtins.map的源碼:__init__()函數(shù)可以看出需要傳入一個(gè)函數(shù)func和至少一個(gè)可迭代對(duì)象。

map(function, iterable, ...)

  • function:接收一個(gè)或多個(gè)參數(shù)的函數(shù)。
  • iterable:一個(gè)或多個(gè)可迭代對(duì)象,如列表、元組、字符串等。

注意事項(xiàng):

  • map() 函數(shù)返回的是一個(gè)迭代器,如果你需要一個(gè)列表或其他可迭代對(duì)象,你需要使用 list() 或其他相應(yīng)的函數(shù)來(lái)轉(zhuǎn)換它。
  • 當(dāng)使用 map() 函數(shù)時(shí),請(qǐng)確保傳遞給它的函數(shù)能夠正確地處理可迭代對(duì)象的元素。如果函數(shù)引發(fā)異常,則 map() 將停止迭代。

示例

傳入一個(gè)可迭代對(duì)象

#通過(guò)map函數(shù) 返回經(jīng)過(guò)平方計(jì)算后的結(jié)果
value1 = map(lambda x: x ** 2, [1, 2, 3, 4, 5])
#之前文章講過(guò)使用list(),將可迭代對(duì)象轉(zhuǎn)為列表
print(list(value1))
#結(jié)果
[1, 4, 9, 16, 25]

傳入多個(gè)可迭代對(duì)象

#通過(guò)map函數(shù) 返回兩個(gè)可迭代對(duì)象中每個(gè)對(duì)應(yīng)位置元素的乘積平方
value2 = map(lambda x,y: x*y, [1, 2, 3, 4, 5],(2,4,6,8,10))
#之前文章講過(guò)使用list(),將可迭代對(duì)象轉(zhuǎn)為列表
print(list(value2))
#結(jié)果
[2, 8, 18, 32, 50]

但是注意傳入的元素個(gè)數(shù)與lambda需要的參數(shù)個(gè)數(shù)要一致,否則會(huì)報(bào)錯(cuò)

比如上面的例子我們只傳入一個(gè)迭代對(duì)象,程序執(zhí)行后會(huì)報(bào)錯(cuò)

value2 = map(lambda x,y: x*y, [1, 2, 3, 4, 5])
print(list(value2))
#結(jié)果報(bào)錯(cuò)
TypeError: <lambda>() missing 1 required positional argument: 'y'

2. filter()

filter() 函數(shù)使用一個(gè)函數(shù)作為條件,并返回一個(gè)迭代器,該迭代器包含所有使該函數(shù)返回True的可迭代對(duì)象的元素。

以下是builtins.filter的源碼:__init__()函數(shù)可以看出需要傳入一個(gè)函數(shù)func和一個(gè)可迭代對(duì)象。

filter(function, iterable)

  • function:一個(gè)函數(shù),它接受一個(gè)參數(shù)并返回一個(gè)布爾值。
  • iterable:一個(gè)可迭代對(duì)象,如列表、元組、字符串等。

示例

傳入一個(gè)可迭代對(duì)象,使用lambda函數(shù)獲取被2整除的數(shù)

numbers = [10, 3, 9, 8, 6]
filternumbers = filter(lambda x: x % 2 == 0, numbers)
print(list(filternumbers))
#結(jié)果
[10, 8, 6]

3. reduce()

reduce() 函數(shù)將一個(gè)二元操作符(或函數(shù))連續(xù)地應(yīng)用于一個(gè)可迭代對(duì)象的元素,從而將其減少為單個(gè)值。python3的版本reduce() 函數(shù)在Python的functools 模塊中,使用時(shí)需要先導(dǎo)入。

reduce(function, sequence, initial=_initial_missing)

  • function:該函數(shù)接受兩個(gè)參數(shù)并返回一個(gè)值。
  • sequence:一個(gè)可迭代對(duì)象,如列表、元組等。
  • initial(可選):傳入該值表示操作的初始值。如果保持默認(rèn)值,則使用可迭代對(duì)象的第一個(gè)元素作為初始值。

示例

1) 將可迭代對(duì)象的值相加

from functools import reduce
numbers = [1, 2, 3, 4, 5]
sumnumbers = reduce(lambda x, y: x + y, numbers)
print(sumnumbers) 
# 輸出: 15

當(dāng)然像上面這種簡(jiǎn)單的例子,用sum(numbers)函數(shù)更簡(jiǎn)單。

2) 傳入1個(gè)初始值作為第1個(gè)元素

from functools import reduce
numbers = [1, 2, 3, 4, 5]
sumnumbers = reduce(lambda x, y: x + y, numbers,6)
print(sumnumbers) 
# 輸出: 21

到此這篇關(guān)于python內(nèi)置函數(shù)map/filter/reduce詳解的文章就介紹到這了,更多相關(guān)python內(nèi)置函數(shù)map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用例子

    python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用例子

    這篇文章主要介紹了python中main函數(shù)(主函數(shù))相關(guān)應(yīng)用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python實(shí)現(xiàn)html轉(zhuǎn)換為pdf報(bào)告(生成pdf報(bào)告)功能示例

    Python實(shí)現(xiàn)html轉(zhuǎn)換為pdf報(bào)告(生成pdf報(bào)告)功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)html轉(zhuǎn)換為pdf報(bào)告功能,結(jié)合實(shí)例形式分析了Python使用pdfkit實(shí)現(xiàn)HTML轉(zhuǎn)換為PDF的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • 一文帶你輕松搞定Python正則匹配

    一文帶你輕松搞定Python正則匹配

    在python?中,正則匹配用到的還是挺多的,下面這篇文章主要給大家介紹了關(guān)于Python正則匹配的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Python中dtype、type()和astype()的區(qū)別詳解

    Python中dtype、type()和astype()的區(qū)別詳解

    這篇文章主要介紹了Python中dtype、type()和astype()的區(qū)別詳解,type()是python內(nèi)置的函數(shù),type()返回?cái)?shù)據(jù)結(jié)構(gòu)類型(list、dict、numpy.ndarray 等),需要的朋友可以參考下
    2023-08-08
  • python利用lxml庫(kù)剩下操作svg圖片

    python利用lxml庫(kù)剩下操作svg圖片

    在大多數(shù)場(chǎng)景中,我們都用?lxml?庫(kù)解析網(wǎng)頁(yè)源碼,但你是否知道,lxml?庫(kù)也是可以操作?svg?圖片的。本文就來(lái)和大家聊聊具體操作方法,希望對(duì)大家有所幫助
    2023-01-01
  • 深入了解NumPy 高級(jí)索引

    深入了解NumPy 高級(jí)索引

    這篇文章主要介紹了NumPy 高級(jí)索引的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python實(shí)例方法與類方法和靜態(tài)方法介紹與區(qū)別分析

    Python實(shí)例方法與類方法和靜態(tài)方法介紹與區(qū)別分析

    在 Python 中,實(shí)例方法(instance method),類方法(class method)與靜態(tài)方法(static method)經(jīng)常容易混淆。本文通過(guò)代碼例子來(lái)說(shuō)明它們的區(qū)別
    2022-10-10
  • spyder 在控制臺(tái)(console)執(zhí)行python文件,debug python程序方式

    spyder 在控制臺(tái)(console)執(zhí)行python文件,debug python程序方式

    這篇文章主要介紹了spyder 在控制臺(tái)(console)執(zhí)行python文件,debug python程序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python jupyter入門教程

    python jupyter入門教程

    Jupyter Notebook是一個(gè)開(kāi)源的Web應(yīng)用程序,允許用戶創(chuàng)建和共享包含代碼、方程式、可視化和文本的文檔,今天通過(guò)本文給大家分享python jupyter入門教程,需要的朋友一起看看吧
    2021-08-08
  • k-means 聚類算法與Python實(shí)現(xiàn)代碼

    k-means 聚類算法與Python實(shí)現(xiàn)代碼

    這篇文章主要介紹了k-means 聚類算法與Python實(shí)現(xiàn)代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

惠水县| 盐城市| 门头沟区| 栾川县| 龙游县| 德令哈市| 塔城市| 壤塘县| 荣成市| 铜山县| 兴安盟| 南和县| 夏河县| 尚志市| 贡山| 衡山县| 兴和县| 闽侯县| 龙泉市| 新蔡县| 乌什县| 德兴市| 连州市| 林芝县| 丰县| 揭西县| 信阳市| 祁东县| 通榆县| 兴山县| 白朗县| 万荣县| 吉隆县| 勐海县| 青州市| 肥乡县| 伊通| 资源县| 大石桥市| 商洛市| 英吉沙县|