gpt4 book ai didi

ruby - Group_by 相似值 - Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:05 24 4
gpt4 key购买 nike

我想根据值的接近度和值之间的给定间隔对一个数组中的值进行分组。

a=[1,2,5,7,20,25,50,53]

例如5的间隔:

a=[[1,2,5,7],[20,25],[50,53]]

如果我将间隔更改为 2:

a=[[1,2],[5,7],[20],[25],[50],[53]]

我尝试使用 group_by 来解决这个问题然而没有成功。

谢谢

最佳答案

使用 Enumerable#slice_before :

def group(a, n)
prev = a.first
a.slice_before { |x|
(x - prev > n).tap { prev = x }
}.to_a
end

a = [1,2,5,7,20,25,50,53]
group(a, 5) # => [[1, 2, 5, 7], [20, 25], [50, 53]]
group(a, 2) # => [[1, 2], [5, 7], [20], [25], [50], [53]]

关于ruby - Group_by 相似值 - Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com