为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只萌萌小番薯 2019-05-25 14:27:30
假设有这样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循环实现上述的结果。
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

如果真像你说的0-11,11-22这样类推出去,你给出的结果是错误的
fromitertoolsimportgroupby
data=[10,11,23,14,45,23,4,5,20,34,29,42,52,7,57]
data.sort()
fork,gingroupby(data,key=lambdax:(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]
                            
查看完整回答
反对 回复 2019-05-25
?
暮色呼如

TA贡献1853条经验 获得超9个赞

#!/usr/bin/ruby
data.each.inject({}){|h,n|(h[n/11]||=[])&&h[n/11]<给出的需求分类标准有点问题,所以根据需求可以自己改一下.
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 538 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信