说我有一组值[1, 4, 8, 9, 12, 15]
我希望将这些按等距范围的垃圾箱分组,
例如。 1-5, 6-10, 11-15, 16-20, ...
使用上面的一组值,输出将适合如下所示的bin:
[1, 4], [8, 9], [12, 15]
有没有解决此问题的Python方法?
答案 0 :(得分:0)
您可以使用列表理解:
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]]
答案 1 :(得分:0)
给人以groupby
函数仅接受具有布尔输出的键的印象,例如。 lambda l : l % 2 == 0
我已经对其进行了修改:
def create_grouping(threshold: int):
return itertools.groupby(values, lambda l: l // threshold)
这会返回分组列表。