lambda分组求和
时间: 2023-07-01 10:20:48 浏览: 88
java8 stream自定义分组求和并排序的实现
可以使用Python的内置函数`reduce`和`lambda`实现分组求和。假设我们有一个列表`nums`,需要按照其中元素的奇偶性进行分组求和,可以使用如下代码:
```python
from functools import reduce
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = reduce(lambda acc, num: (acc[0] + num, acc[1]) if num % 2 == 0 else (acc[0], acc[1] + num), nums, (0, 0))
print(result) # 输出 (30, 25),即偶数之和为30,奇数之和为25
```
在上述代码中,我们使用`reduce`函数对`nums`列表中的元素进行迭代,初始值为`(0, 0)`,表示偶数和和奇数和的初始值均为0。`lambda`函数接受两个参数:`acc`表示当前的累加器,`num`表示当前迭代到的元素。如果当前元素是偶数,则将元素的值加到偶数和上,否则将元素的值加到奇数和上。最终返回的结果是一个二元组,第一个元素表示偶数和,第二个元素表示奇数和。
阅读全文