一、需求
假设有个 list:
example_list = [95.0, 95.0, 97.0, 97.0, 97.0, 98.0, 99.0, 99.0, 101.0, 101.0, 101.0, 101.0, 101.0, 102.0, 102.0, 103.0, 103.0, 103.0, 104.0, 104.0, 104.0, 104.0, 104.0, 104.0, 104.0, 104.0, 105.0, 105.0, 105.0, 105.0, 106.0, 107.0, 107.0, 107.0, 107.0, 108.0, 108.0, 108.0, 108.0, 109.0, 109.0, 109.0, 110.0, 111.0, 111.0, 111.0, 112.0, 112.0, 115.0, 117.0]
以 5 为间隔,求各个分组中的元素个数。
二、解决方法
使用 groupby() 函数
for k, g in groupby(sorted(example_list), key=lambda x: x//5):
print('{}-{}: {}'.format(k*5, (k+1)*5-1, len(list(g))))
三、结果展示
95.0-99.0: 8
100.0-104.0: 18
105.0-109.0: 16
110.0-114.0: 6
115.0-119.0: 2
四、补充
有篇文章详细讲解了 groupby() 函数: