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

假设有这样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循环实现上述的结果。
一只萌萌小番薯
浏览 539回答 2
2回答

呼唤远方

如果真像你说的0-11,11-22这样类推出去,你给出的结果是错误的fromitertoolsimportgroupbydata=[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]

暮色呼如

#!/usr/bin/rubydata.each.inject({}){|h,n|(h[n/11]||=[])&&h[n/11]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript