日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

什么是Python中的map,reduce和filter?

發(fā)布時間:2025/3/15 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是Python中的map,reduce和filter? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基本上,lambdas以及map,reduce和filter為python提供了函數(shù)式編程能力。讓我們看看他們是什么。

  • map: map函數(shù)采用 iterable(list,tuple,set)并將函數(shù)應(yīng)用于列表中的每個元素。讓我們看一個例子來看看它是如何工作的。

任務(wù)1:給定一個整數(shù)列表,編寫代碼,以方的所有數(shù)s在列表中。

def func (num ):“””對給定數(shù)字進(jìn)行平方的函數(shù)“””return num * numl = [1, 2, 3, 4, 5, 6] #map采用一個函數(shù)并應(yīng)用于 #列表中的每個元素 ans = list (map (func ,l ))#[1,4,9,16,25,36] print(ans)

上面的代碼工作并執(zhí)行我們想要實(shí)現(xiàn)的內(nèi)容,但我們可以使用lambda函數(shù)以更簡潔的方式編寫它,而不是創(chuàng)建單獨(dú)的函數(shù)。讓我們稍微改變一下代碼,使其更簡潔。

l = [1, 2, 3, 4, 5, 6] #[1,4,9,16,25,36] ans = list (map (lambda x :x * x ,l )) print(ans)

任務(wù)2:給定一個整數(shù)列表,編寫一個代碼來均數(shù)偶數(shù),但將奇數(shù)數(shù)字排成一行。這里我們可以一起使用map和lambda,如下所示

l = [1, 2, 3, 4, 5, 6] ans = list(map(lambda x: x ** 2 if x % 2 == 0 else x ** 3, l)) print(ans)

這總結(jié)了地圖的基本工作。我們來看看過濾器

  • filter:它的工作原理類似于map函數(shù)。顧名思義,它用于根據(jù)特定條件過濾元素。不同之處在于它從列表中的元素創(chuàng)建滿足某些條件的新列表。讓我們看看它如何與一個例子一起工作。這些參數(shù)類似于地圖的參數(shù)。它需要一個謂詞函數(shù)和一個可迭代函數(shù)。

任務(wù)3:給定一個整數(shù)列表,編寫一個代碼,僅從列表中分隔偶數(shù)。

l = [1, 2, 3, 4, 5, 6]#只保留滿足謂詞功能的列表元素 ans = list(filter(lambda x: x % 2 == 0, l))# [2, 4, 6] print(ans)
  • reduce:它繼續(xù)在列表中應(yīng)用函數(shù),直到它返回單個值。讓我們通過一個例子來看看reduce的工作

任務(wù)4:給定一個整數(shù)列表,編寫一個代碼,返回通過乘以列表中的元素獲得的總值。

from functools import reducel = [1, 2, 3, 4, 5, 6] ans = reduce(lambda x, y: x * y, l) print(ans)

筆記:

map和 filter返回一個map對象,而 reduce返回一個值。
我們必須從functools導(dǎo)入reduce,但map和filter可直接在builtins中使用

總結(jié)

以上是生活随笔為你收集整理的什么是Python中的map,reduce和filter?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。