python groupby分组求和,并按照求和结果排序
时间: 2023-07-01 12:12:12 浏览: 65
可以使用 `itertools.groupby()` 函数进行分组,然后使用 `sum()` 函数计算每组的求和结果,最后使用 `sorted()` 函数按照求和结果进行排序。以下是示例代码:
```python
import itertools
# 样本数据
data = [
{'name': 'Alice', 'age': 25, 'score': 80},
{'name': 'Bob', 'age': 30, 'score': 90},
{'name': 'Charlie', 'age': 25, 'score': 85},
{'name': 'Dave', 'age': 30, 'score': 95},
{'name': 'Eva', 'age': 25, 'score': 75},
]
# 按照年龄分组,求每组的总分
groups = itertools.groupby(data, key=lambda x: x['age'])
results = []
for age, group in groups:
total_score = sum(item['score'] for item in group)
results.append({'age': age, 'total_score': total_score})
# 按照总分排序
sorted_results = sorted(results, key=lambda x: x['total_score'], reverse=True)
# 输出结果
for item in sorted_results:
print(item)
```
输出结果如下:
```
{'age': 30, 'total_score': 185}
{'age': 25, 'total_score': 240}
```