Bri*_*313 1 ruby arrays hash group-by
我有一个Ruby哈希:
example = {
:key1 => [1, 1, 4],
:key2 => [1, 2, 3],
:key3 => [1, 3, 2],
:key4 => [1, 5, 0],
:key5 => [1, 7, 2],
:key6 => [2, 1, 5],
:key7 => [2, 2, 4],
:key8 => [2, 4, 2],
:key9 => [3, 1, 6],
:key10 => [3, 2, 5],
:key11 => [3, 3, 4]
}
Run Code Online (Sandbox Code Playgroud)
如何通过值的数组中的第一个元素对哈希进行分组?分组后,如何计算每个组的数量并将其存储到其他哈希中?
group_by
如果我能够提取计数,我愿意跳过这部分.
示例所需输出:
groups = {:group1 => 5, :group2 => 3, :group3 => 3}
Run Code Online (Sandbox Code Playgroud)
这是一种使用方式each_with_object
:
example.each_with_object(Hash.new(0)) { |(_, (v, *)), h| h[:"group#{v}"] += 1 }
# => {:group1=>5, :group2=>3, :group3=>3}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
829 次 |
最近记录: |