lambda表达式分组并求和
时间: 2023-12-20 11:53:50 浏览: 102
lambda 表达式
可以使用Python中的`groupby`函数和`reduce`函数来实现。
下面是一个示例代码,假设有一个列表`data`,其中每个元素都是一个二元组`(key, value)`,需要按照`key`分组并求和对应的`value`:
```python
from itertools import groupby
from functools import reduce
data = [('a', 1), ('a', 2), ('b', 3), ('b', 4), ('b', 5)]
# 使用groupby函数按照key分组
grouped_data = groupby(data, key=lambda x: x[0])
# 对每组数据求和
result = [(key, reduce(lambda x, y: x+y, [v[1] for v in values])) for key, values in grouped_data]
print(result)
```
输出结果为:
```
[('a', 3), ('b', 12)]
```
解释:
首先使用`groupby`函数对`data`进行分组,得到一个迭代器`grouped_data`。对于每个分组,使用`reduce`函数对其进行求和,然后将结果存入一个新的列表中。最终的结果就是每个分组的key和对应的求和结果。
阅读全文