如何在Ruby中访问哈希表中特定列的最小值或最大值
我有一个包含键值的数组值的哈希表。我想要获取数组值的特定列中的最小或最大值,以便我可以更改第一列的值。以下是我的代码。有什么建议吗?
lru_c()
当我运行此代码时,我得到了0,即第三个哈希表的值的最小值。我需要的是数组值的第二列的最小值,即[6, 2, 9, 4].min
。我想要访问具有最小值的h [2]
(最后一列)。
def lru_c()
h = Hash.new{|hsh,key| hsh[key] = [] }
h[1] = [0,0,6]
h[2] = [0,0,2]
h[3] = [0,0,9]
h[4] = [7,1,4]
puts h.values[2].min
end
h.min_by { |_, v| v.last }
当然,谢谢! - Aleksei Matiushkinh[h.min_by{|_,v| v.last}.first][0] = :whatever
,所以h #=> {1=>[0, 0, 6], 2=>[:whatever, 0, 2], 3=>[0, 0, 9], 4=>[7, 1, 4]}
。 - iGian2
,因为它是所有值的第二列的最小值,还是因为它是包含所有值的第二列的最小值的哈希条目的键,或者是h[2]
,它是包含所有值的第二列的最小值的值数组。请明确说明返回值应该是什么,使用一个没有键、值和值索引之间歧义的例子来说明。 - pjs