首页 > 解决方案 > 如何在这里使用reduce函数?

问题描述

我正在尝试查找元组中所有整数的总数

from  functools  import reduce
marks =  [("Jon" ,29 ), ("santi",35), ("anna",35)]

Total_marks = lambda x,y: x[1]

print(marks)
print (reduce(Total_marks,marks))

上面的代码可以取整数的第一个值,但我想找到所有整数的总和,如何在 python 中使用 reduce

标签: pythonpython-3.xtuplesreduce

解决方案


更改加法函数的定义(此处无需使用 lambda 表示法):

def total_marks(x, y): 
    return x + y[1]

并通过提供第三个可选参数告诉reduce初始值是一个数字,而不是一个元组:

reduce(total_marks, marks, 0)
#99

与 lambda 相同的解决方案:

reduce(lambda x,y: x+y[1], marks, 0)

还有一种不使用的解决方案reduce

_, y = zip(*marks)
sum(y)
#99

推荐阅读