一、需求
假设有个 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() 函数:
https://blog.youkuaiyun.com/qq_24753293/article/details/78338263
本文介绍了一种使用Python的groupby函数对列表中元素按特定间隔进行分组计数的方法。通过示例展示了如何将一个数值列表按5的间隔进行分组,并统计各分组内的元素数量。
1万+





