Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 以更红的方式获得2d阵列最大值?_Ruby_Block_Max - Fatal编程技术网

Ruby 以更红的方式获得2d阵列最大值?

Ruby 以更红的方式获得2d阵列最大值?,ruby,block,max,Ruby,Block,Max,背景:在Ruby中,我有一个2d数组,如下所示: count[[english_word, french_word]] = ... pp count {["my", "une"]=>0.0, ["my", "voiture"]=>0.2, ["red", "maison"]=>0.9, ... } (我这样做而不是count[english\u word][french\u word]的原因是我不确定如何绕过unde错误,我在堆栈溢出上看到了这种语法建议) 我使用所有单词

背景:在Ruby中,我有一个2d数组,如下所示:

count[[english_word, french_word]] = ...
pp count
{["my", "une"]=>0.0,
 ["my", "voiture"]=>0.2,
 ["red", "maison"]=>0.9,
...
}
(我这样做而不是
count[english\u word][french\u word]
的原因是我不确定如何绕过unde错误,我在堆栈溢出上看到了这种语法建议)

我使用所有单词的
english\u vocab
french\u 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-ish方法来完成同样的事情?

我认为这比你想象的要简单得多

hash = {
  ["my", "une"]=>0.0,
  ["my", "voiture"]=>0.2,
  ["red", "maison"]=>0.9,
}

puts hash.find_all{|a| a[0][0] == 'my' }.max[1]

它是一个以数组为键的散列。我在原来的问题上加了一个例子。