Ruby 使用类似值的哈希键填充二维数组

Ruby 使用类似值的哈希键填充二维数组,ruby,Ruby,我对Ruby是新手。我有一个已排序的散列,具有以下值。我想在这些值的基础上,将它们的键放入多维数组中。比如说 为了 我正在寻找一个像[[a,b],[c,d,e],[f],[g],[h]]这样的数组,只是解决了这个问题: 您可以使用Ruby数值数组库: require 'narray' array = NArray[ [a,b] , [c,d,e] , [f] , [g] , [h] ] 然后 数组[1][2]将返回“b”,而数组[2][3]将返回“e”,等c.刚刚解决了这个问题: hash

我对Ruby是新手。我有一个已排序的散列,具有以下值。我想在这些值的基础上,将它们的键放入多维数组中。比如说

为了


我正在寻找一个像[[a,b],[c,d,e],[f],[g],[h]]这样的数组,只是解决了这个问题:

您可以使用Ruby数值数组库:

require 'narray'

array = NArray[  [a,b] , [c,d,e] , [f] , [g] , [h] ]
然后


数组[1][2]将返回“b”,而数组[2][3]将返回“e”,等c.

刚刚解决了这个问题:

hash = {'a'=>'acemrs','b'=>'acemrs','c'=>'acrs','d'=>'acrs','e'=>'acrs','f'=>'aeoopstt','g'=>'for','h'=>'foru'}
new_hash = {}

hash.each_pair do |key, value|
  (new_hash[value] ||= []) << key
end

array = new_hash.values
您可以使用Ruby数值数组库:

require 'narray'

array = NArray[  [a,b] , [c,d,e] , [f] , [g] , [h] ]
然后

数组[1][2]将返回“b”,而数组[2][3]将返回“e”,等等

hash = {'a'=>'acemrs','b'=>'acemrs','c'=>'acrs','d'=>'acrs','e'=>'acrs','f'=>'aeoopstt','g'=>'for','h'=>'foru'}
new_hash = {}

hash.each_pair do |key, value|
  (new_hash[value] ||= []) << key
end

array = new_hash.values
最后,您只需要这些值,这样就可以创建新的\u hash.values了

最后,您只需要这些值,这样就可以创建新的\u hash.values了


.

款式不错。不过,我可能会解释哈希迭代块,因为他是ruby新手;谢谢你,亚当,补充了一些解释。很好的风格。不过,我可能会解释哈希迭代块,因为他是ruby新手;谢谢你,亚当,补充了一些解释。
hash.group_by{|k, v| v}.values.map(&:first)