今天遇到一个问题,就是有一个列表数据,划分一个固定区间,统计每个区间数量。
使用 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