Hash#invertの、値を上書きしないやつ
{a:1, b:1, c:2}.invert # => {1=>:b, 2=>:c}
:aさんが泣いちゃいます。
Hash[*{a:1, b:1, c:2}.group_by{|k,v| v}.map{|v,kv| [v,kv.map(&:first)]}.flatten(1)]
# => {1=>[:a, :b], 2=>[:c]}
よかったね!:aさん!
{a:1, b:1, c:2}.invert # => {1=>:b, 2=>:c}
:aさんが泣いちゃいます。
Hash[*{a:1, b:1, c:2}.group_by{|k,v| v}.map{|v,kv| [v,kv.map(&:first)]}.flatten(1)]
# => {1=>[:a, :b], 2=>[:c]}
よかったね!:aさん!