Python列表数据按区间分组统计各组个数

需求描述

今天遇到一个问题,就是有一个列表数据,划分一个固定区间,统计每个区间数量。

解决方案

使用 groupby() 函数

from itertools import groupby

score_list = [6.3, 1.2, 6.2, 5.6, 9.5, 1.6]
step = 1
for k, g in groupby(sorted(score_list), key=lambda x: x//step):
    print('{}-{}: {}'.format(k*step, (k+1)*step+1, len(list(g))))

分组效果

1.0-3.0: 2
5.0-7.0: 1
6.0-8.0: 2
9.0-11.0: 1

你可能感兴趣的:(Python,python)