日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 2078 0

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

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

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

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

            
          

上面的代碼工作并執行我們想要實現的內容,但我們可以使用lambda函數以更簡潔的方式編寫它,而不是創建單獨的函數。讓我們稍微改變一下代碼,使其更簡潔。

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


            
          

任務2:給定一個整數列表,編寫一個代碼來均數偶數,但將奇數數字排成一行。這里我們可以一起使用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)

            
          

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

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

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

            
              l = [1, 2, 3, 4, 5, 6]
 
#只保留滿足謂詞功能的列表元素
ans = list(filter(lambda x: x % 2 == 0, l))
 
# [2, 4, 6]
print(ans)

            
          
  • reduce:它繼續在列表中應用函數,直到它返回單個值。讓我們通過一個例子來看看reduce的工作

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

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


            
          

筆記:

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 龙岩市| 年辖:市辖区| 孙吴县| 瑞丽市| 嘉禾县| 唐海县| 漠河县| 泽库县| 东光县| 阳谷县| 岳西县| 称多县| 金堂县| 舒城县| 长顺县| 渑池县| 清水县| 巩义市| 乌恰县| 东港市| 钟祥市| 尼勒克县| 南昌市| 钟山县| 隆化县| 林甸县| 彰武县| 宁安市| 高邑县| 扎兰屯市| 双辽市| 宁城县| 体育| 阿巴嘎旗| 迭部县| 衡山县| 讷河市| 黔南| 江油市| 商城县| 昌宁县|