假设我有一组值[1, 4, 8, 9, 12, 15]
我想把这些东西按相等范围的箱子分组,例如。1-5, 6-10, 11-15, 16-20, ...
使用上面的值集,输出可以放入如下存储箱中:[1, 4], [8, 9], [12, 15]
有没有一种巨蟒式的方式来做这件事?
发布于 2019-07-16 04:42:52
你可以使用列表理解:
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]]发布于 2019-07-16 05:12:01
groupby函数只接受带有布尔输出的键,例如。lambda l : l % 2 == 0
我对它进行了如下修改:
def create_grouping(threshold: int):
return itertools.groupby(values, lambda l: l // threshold)这将返回分组列表。
https://stackoverflow.com/questions/57046799
复制相似问题