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