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...