五、函式_18.reduce()
阿新 • • 發佈:2021-10-28
reduce()
reduce(func, iterable ),
功能:每次從iterable中取出兩個元素,放入func中處理
然後把運算結果和iterable中的下一個元素再放入func中處理,以此類推,直至耗盡
引數:func:函式
iterable:可迭代物件
返回值:最終的運算結果
注:使用reduce()時,需要匯入 from functools import reduce
批量處理資料
# 普通方法批量處理資料 varlist = [0, 7, 0, 6 ] NoneStr = '' for i in varlist : NoneStr += str(i) print(NoneStr) # reduce()處理 from functools import reduce varlist1 = [0, 7, 0, 6 ] varlist2 = ['0', '7', '0', '6' ] # 方法一 def p(n, m) : return str(n) + str(m) r = reduce(p,varlist1) print(r, type(r)) # 方法二 r = reduce(lambda x, y : int(x)*10 + int(y), varlist2) print(r,type(r)) # 方法三 varstr = '4560000789' def s_l(n) : vardict = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} n = vardict[n] print(n) return n p1 = map(s_l, varstr) print(p1) r = reduce(lambda x, y : x*10 + y, p1) print(r,type(r)) 0706 0706 <class 'str'> 706 <class 'int'> <map object at 0x0000006D25040748> 4 5 6 0 0 0 0 7 8 9 4560000789 <class 'int'>