map與reduce的用法

2021-09-24 19:28:30 字數 1709 閱讀 6308

#高階函式,接收函式作為輸入或輸出的函式

#map 函式接收兩個引數,第乙個引數是乙個對資料處理的函式(這個函式只能接收乙個引數), 第二個引數是乙個可迭代物件 #map 函式的功能是對第二個引數中的每乙個元素使用資料處理的函式進行處理並返回處理後 的值

#所以 map 函式返回的是乙個迭代器,迭代器執行的過程就是使用資料處理函式對可迭代物件 中的每乙個元素處理的過程

num_l = [num for num in range(20,50) if num%3==0]

print(num_l)

def add_one(x):

return x+1

maped_num = map(add_one, num_l)

print(maped_num)

from collections import iterator,iterable

from types import generatortype

print(isinstance(maped_num, generatortype)) print(isinstance(maped_num, iterator)) print(isinstance(maped_num, iterable)) print(tuple(maped_num))

maped_num = map(lambda x:x+3, num_l)

print(maped_num) f

rom collections import iterator,iterable

from types import generatortype

print(isinstance(maped_num, generatortype)) print(isinstance(maped_num, iterator)) print(isinstance(maped_num, iterable)) print(tuple(maped_num))

#高階函式  reduce 也是接收兩個引數,第乙個是函式,第二個是可迭代物件

#reduce 把第乙個函式作用在可迭代物件上,這第乙個函式必須接收兩個引數,reduce 把結果繼 續和序列的下乙個元素做累積計算

#所以 reduce 函式返回的是累計計算的結果

>>>def add(x, y) : # 兩數相加

... return x + y ...

>>> reduce(add, [1,2,3,4,5]) # 計算列表和:1+2+3+4+5

>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函式

#高階函式 filter 實現對乙個序列過濾的功能,它的第乙個引數是定義過濾規則的函式,第二個 引數是要過濾的可迭代物件

#filter 返回的是乙個迭代器

#sorted 函式也是乙個高階函式,帶兩個引數

#但跟前幾個有不同是,它的第乙個引數是要處理(排序)的資料,乙個可迭代物件;後面引數則 是排序規則函式

#它返回的是排序後的乙個列表物件

s = sorted(('bob', 'about', 'zoo', 'credit'))

print(s)

def kk(x):

return len(x)

s_new = sorted(('bob', 'about', 'zoo', 'credit'), key = kk, reverse = true)   #key引數來指定乙個函式

print(s_new)

Python 中 map和reduce 的用法

首先是map 接受兩個引數,第乙個是函式,第二個是乙個可迭代的的引數 iterable 如下例子,我們定義乙個函式f x x 2 map的用法 deffunc x return x x m map func,range 1,8 print list m 輸出 1,4,9,16,25,36,49 這段...

Python中的map與reduce函式簡介

1.從引數方面來講 map 函式 map 包含兩個引數,第乙個是引數是乙個函式,第二個是序列 列表或元組 其中,函式 即map的第乙個引數位置的函式 可以接收乙個或多個引數。reduce 函式 reduce 第乙個引數是函式,第二個是 序列 列表或元組 但是,其函式必須接收兩個引數。2.從對傳進去的...

reduce端join與map端join演算法實現

2 實現機制 通過將關聯的條件作為map輸出的key,將兩表滿足join條件的資料並攜帶資料所 的檔案資訊,發往同乙個reduce task,在reduce中進行資料的串聯 第一步 定義joinbeans public class joinbeans extends joinreduce imple...