首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值分组到相等范围的存储箱中

将值分组到相等范围的存储箱中
EN

Stack Overflow用户
提问于 2019-07-16 04:32:04
回答 2查看 30关注 0票数 0

假设我有一组值[1, 4, 8, 9, 12, 15]

我想把这些东西按相等范围的箱子分组,例如。1-5, 6-10, 11-15, 16-20, ...

使用上面的值集,输出可以放入如下存储箱中:[1, 4], [8, 9], [12, 15]

有没有一种巨蟒式的方式来做这件事?

EN

回答 2

Stack Overflow用户

发布于 2019-07-16 04:42:52

你可以使用列表理解:

代码语言:javascript
复制
r = 5
l = [1, 4, 8, 9, 12, 15]
bins = [1 + i*r for i in range(max(l)//r + 1)]
bins_list = [[x for x in l if bins[i]<= x < bins[i+1]] for i in range(len(bins)-1)]
print(bins_list) 
# [[1, 4], [8, 9], [12, 15]]
票数 0
EN

Stack Overflow用户

发布于 2019-07-16 05:12:01

groupby函数只接受带有布尔输出的键,例如。lambda l : l % 2 == 0

我对它进行了如下修改:

代码语言:javascript
复制
def create_grouping(threshold: int):
    return itertools.groupby(values, lambda l: l // threshold)

这将返回分组列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57046799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档