Python基礎 高階函式 Map Reduce

2021-08-13 08:48:59 字數 1702 閱讀 4901

map()函式接受2個引數

1. 引數 函式

2. 引數 iterable

示例

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# map() 函式的使用

# 轉換為字串

deffuntion

(x):

return str(x)

deftest

(): mlist = [1,2,3,4,5]

# ('list ', [1, 2, 3, 4, 5])

print("list ", mlist)

# map函式的使用:函式, iterator

# ('map ', ['1', '2', '3', '4', '5'])

mmap = map(funtion, [1,2,3,4,5])

print("map ", mmap)

# 執行測試程式

test()

執行結果

d:\pythonproject>python run.py

('list ', [1, 2, 3, 4, 5])

('map ', ['1', '2', '3', '4', '5'])

我的理解是,管他的能用就行,知道怎麼傳參,傳出什麼結果就行了。結果是以乙個新的iterator,專案用到的時候才是關鍵

reduce把乙個函式作用在乙個序列[a,b..]上,這個函式必須接受2個引數,reduce把結果繼續和序列的下乙個元素做累積計算,效果如下

reduce(f(x, y), [a, b]) = f(a, b)

我的理解就是傳遞2個類似遞迴函式的,詳見下面demo,看**理解得快

例項

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# python reduce用法

# reduce(f(x, y), [a, b]) = f(a, b)

# reduce(f(x, y), [a, b, c]) = f(f(a, b),c)

# 2 個引數的函式

deffunction

(x, y):

return x +y

defreducetest

():# reduce(f(x, y), [a, b]) = f(a, b)

# f(x, y) = f(1, 2) = 1 + 2 = 3

# **值 result = 3

result = reduce(function, [1, 2])

# 實際答案 3

print(result)

# reduce(f(x, y), [a, b, c]) = f(f(a, b),c)

# 第一步f(x, y) = f(1, 2) = 1 + 2 = 3

# 第二步f(x, y) = f(3, 3) = 1 + 2 = 6

result = reduce(function, [1, 2,3])

# 實際答案 6

print(result)

reducetest()

執行結果

d:\pythonproject>python run.py

36

Python高階函式 map

map 函式原型 map 函式,序列 用法 map將傳入的函式依次作用到序列的每個元素,並把結果作為新的序列返回。eg 1 使用map實現f x x x,x是list 1,2,3,4 def f x return x x.r map f,1 2,3 4 list r 1,4,9,16 2 把list...

Python之Map高階函式

map 函式 map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。例如,對於list 1,2,3,4,5,6,7,8,9 如果希望把list的每個元素都作平方,就可以用map 函式 因此...

Python高階函式 map和reduce

map fn,lsd fn 是乙個函式,可以使自己定義的,也可以是python內建的函式 lsd 是乙個序列 功能 依次將lsd中的元素作用到fn上 屬於惰性序列通過map函式進行處理,將字串型的列表裝換稱整型列表。l 1 2 3 4 5 def func key dict1 return dict...