python - 如何在这里使用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
解决方案
更改加法函数的定义(此处无需使用 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
推荐阅读
- python - 过滤图类型
- blockchain - 实现子图来查询不同的区块链
- next.js - 使用 FaunaDB Dev 获取会话错误的 Next-Auth
- python - Matplotlib Plot 的标题和副标题不对齐
- java - 按对列表中的出现映射对象
- terraform - 使用“随机”资源(整数/字符串)时如何在 Terraform 中动态生成新变量?
- freemarker - Freemarker 函数字符串格式化
- mysql - 使用 concat 将一个简单的字符串、一个子查询和另一个简单的字符串放在一起
- java - 如何在java中使用正则表达式从url获取可选参数的值
- ruby - 错误:新模式破坏了与 rails 和 graphql 的向后兼容性