Python list 按区间分组统计各组个数
一、需求
假设有个 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() 函数: