需求:假設Python沒有提供內置函數int如果使用函數方式實現把一串字符串轉換成整數例如把字符串‘12345‘轉換成整數12345
思路 1,字符串也是序列可以使用map函數處理分割成一個列表
2,使用reduce函數處理生成的列表計算出最終轉換的整數結果
#導入reduce函數模塊
from functools import reduce
#定義reduce函數處理邏輯把數字列表進過處理生成整數
def fn(x,y):
return x*10+y
#定義map函數邏輯把數字字符串生成列表如'12345'進過處理生成[1,2,3,4,5]
def char2num(s):
digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return digits[s]
#從內往外執行首先把12345進過map處理生成列表[1,2,3,4,5]然后在進過reduce處理生成整數12345打印出來
#處理過程是((((1*10+2)*10)+3)*10+4)*10+5
res = reduce(fn,map(char2num,'12345'))
print(res)
12345
