Map函數
map()函數接受2個參數
1. 參數 函數
2. 參數 Iterable
示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# map() 函數的使用
# 轉換為字元串
def funtion(x):
return str(x)
def test():
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用法
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 個參數的函數
def function(x, y):
return x +y
def reduceTest():
# 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
3
6