Interval类描述了一个连续的范围区间,这个区间可以是闭、开、半闭半开、无穷的,他的区间值不一定是数字,可以包含任何的数据类型,比如字符串,时间等等,同时他和python的各种操作(<, <=, ==, >=, >等)也是兼容的。
from itertools import groupby
lst= [
2648, 2648, 2648, 63370, 63370, 425, 425, 120,
120, 217, 217, 189, 189, 128, 128, 115, 115, 197,
19752, 152, 152, 275, 275, 1716, 1716, 131, 131,
98, 98, 138, 138, 277, 277, 849, 302, 152, 1571,
68, 68, 102, 102, 92, 92, 146, 146, 155, 155,
9181, 9181, 474, 449, 98, 98, 59, 59, 295, 101, 5
]
for k, g in groupby(sorted(lst), key=lambda x: x//50):
print('{}-{}: {}'.format(k*50, (k+1)*50-1, len(list(g))))
結果:
0-49: 1
50-99: 10
100-149: 15
150-199: 8
200-249: 2
250-299: 5
300-349: 1
400-449: 3
450-499: 1
800-849: 1
1550-1599: 1
1700-1749: 2
2600-2649: 3
9150-9199: 2
19750-19799: 1
63350-63399: 2
不要使用內建函數的名字: list 作為變數名
你想要的區間重疊了, 比如說元素 50 就不知道要分在 0-50 還是 50-100 了
存取字典應該用 [] 而不是 ()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。