ruby - 以更像 Rubyish 的方式获得 2d 数组最大值?

标签 ruby block max

背景:在 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_vocabfrench_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/

相关文章:

javascript - Windows 上的 ExecJS::RuntimeError 试图遵循 ruby​​tutorial

ruby-on-rails - RVM ruby​​ 安装错误 - Mac

ruby - 如何使用 Ruby 模拟 Web session 并存储接收到的 cookie?

ruby-on-rails - 如何在 Rails 中使用 RSpec 测试处理错误请求?

templates - 传递给嵌入模板的 Twig block

java - Memcached - 缓存必须与数据库同步的信息

python - 在数据框中创建最大/最小列时选择列的问题

html - Wordpress:CSS 覆盖有序列表 block 不读取起始值

c - 如何找到数组中最大和最小数字的位置?

excel - 如何在excel的所有行中将SUM转换为MAX?