python - 如何实现按照指定区间进行分组

查看:1444
本文介绍了python - 如何实现按照指定区间进行分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

假设有这样1组数据:

data = [10,11,23,14,45,23,4,5,20,34,29,42,52,7,57]

其最大值为57,而最小值为3,现在想将其分为5组,每组的取值范围为11。即数值在0-11为1组,数值在11-22为另外1组,以此类推。
现在希望得到类似如下的结果:

[10, 11, 4, 5, 7]
[23, 14, 23, 20]
[34, 29]
[45, 42]
[52, 57]

如何使用最少的for或while循环实现上述的结果。

解决方案

如果真像你说的0-11,11-22这样类推出去,你给出的结果是错误的

from itertools import groupby

data = [10,11,23,14,45,23,4,5,20,34,29,42,52,7,57]
data.sort()

for k, g in groupby(data, key=lambda x: (x - 1) / 11):
    print '{}-{}'.format(k * 11, (k + 1) * 11), list(g)
    
#得出的结果应该是:
0-11  [4, 5, 7, 10, 11]
11-22 [14, 20]
22-33 [23, 23, 29]
33-44 [34, 42]
44-55 [45, 52]
55-66 [57]

这篇关于python - 如何实现按照指定区间进行分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆