假设我有两个阵列,

o = ["16", "16", "119"]
d = ["97", "119", "97"]

所需的输出如下:
{16=>[97, 119], 119=>[97]}

我试着用.zip但没用。我该怎么做?

最佳答案

您可以链接group_bywith_indexd中的元素按o中的相应元素分组:

d.group_by.with_index { |_, i| o[i] }
#=> {"16"=>["97", "119"], "119"=>["97"]}

要获取整数,必须添加一些to_i调用:
d.map(&:to_i).group_by.with_index { |_, i| o[i].to_i }
#=> {16=>[97, 119], 119=>[97]}

10-07 15:35