加载中...

reduce

reduce

reduce(func,iterable) 是一个功能性函数,用于计算数据。它把 iterable 中的前两个数据扔到 func 函数中做计算,然后把计算的结果和 iterable 中第三个值继续扔到 func 中做计算,以此类推,最后返回计算的结果。

参数:

  • func: 自定义函数
  • iterable : 可迭代对象(容器类型数据,range对象,迭代器)

返回值:

  • 计算的结果

示例

[7,7,5,8] => 7758
lst = [7,7,5,8]

strvar = ""
for i in lst:
	strvar += str(i)
res = int(strvar)
print(res , type(res))

使用 reduce 改写:

from functools import reduce
lst = [7,7,5,8]
def func(x,y):
	return x * 10 + y
res = reduce(func,lst)
print(res)

# 使用lambda 进行改造
print(reduce(lambda x,y: x*10 + y,lst))
"123" => 123 不使用int的情况下实现该操作
strvar = "123"
def func(x,y):
	return x * 10 + y

def func2(n):
	dic = {}
	for i in range(10): #创建字符串key 数字value字典
		dic[str(i)] = i	
	return dic[n]

it = map(func2,strvar)
print(reduce(lambda x,y: x*10 + y,it))
posted @ 2024-03-03 17:00  江寒雨  阅读(67)  评论(0)    收藏  举报