gpt4 book ai didi

arrays - 在 ruby​​ 数组中查找距离对

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:52 25 4
gpt4 key购买 nike

我有一个包含一系列值的大数组。检查位置 x 的值是否对位置 x+距离的值有影响我想找到所有的对

pair = [values[x], values[x+1]]

下面的代码有效

pairs_with_distance = []
values.each_cons(1+distance) do |sequence|
pairs_with_distance << [sequence[0], sequence[-1]]
end

但是看起来很复杂,我想知道我是否能把它写得更短更清楚

最佳答案

可以直接使用map来缩短代码:

pairs_with_distance = values.each_cons(1 + distance).map { |seq| 
[seq.first, seq.last]
}

我更喜欢下面的例子,因为它有简短、可读的代码行,而且因为它分隔了步骤——一种允许你为中间计算赋予有意义的名称的方法(groups 在这种情况下)。您可能可以根据应用程序的实际域想出更好的名称。

values   = [11,22,33,44,55,66,77]
distance = 2

groups = values.each_cons(1 + distance)
pairs = groups.map { |seq| [seq.first, seq.last] }

p pairs

关于arrays - 在 ruby​​ 数组中查找距离对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389821/

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