背景:在 Ruby 中,我有一个二维数组,如下所示:
count[[english_word, french_word]] = ...
pp count
{["my", "une"]=>0.0,
["my", "voiture"]=>0.2,
["red", "maison"]=>0.9,
...
}
(我这样做而不是 count[english_word][french_word]
的原因是我不确定如何解决 Undef 错误,我在 Stack Overflow 上看到了建议的语法)
我使用所有单词的 english_vocab
和 french_vocab
数组用一对嵌套循环填充了数据结构。
问题:我希望能够得到给定英文单词的最大值。
english_word = 'foo'
max_count = 0
french_vocab.each do |french_word|
count = count[[english_word, french_word]]
if count > max_count
max_count = count
end
end
我可以用一个简单的嵌套 for 循环来做到这一点,但我想知道是否有更好的 Ruby 式方法来做同样的事情?
最佳答案
我认为这比您想象的要容易得多。
hash = {
["my", "une"]=>0.0,
["my", "voiture"]=>0.2,
["red", "maison"]=>0.9,
}
puts hash.find_all{|a| a[0][0] == 'my' }.max[1]
关于ruby - 以更像 Rubyish 的方式获得 2d 数组最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3593659/