我有一个散列如下:
hash = {"Monday" => "a", "Tuesday" => "b", "Wednesday" => "c", "Thursday" => "b", "Friday" => "c"}
我想得到一个新的散列:
{"a" => "Monday", "b" => "Tuesday, Thursday" , "c" => "Wednesday, Friday"}
Hash#invert
只给出第一个值并丢失重复的值。有什么有效的方法可以做到这一点?
最佳答案
hash.inject({}){ |h, (k,v)| (h[v] ||= []) << k; h }
=> {"a"=>["Monday"], "b"=>["Tuesday", "Thursday"], "c"=>["Wednesday", "Friday"]}
关于ruby - 快速找出重复哈希值的所有键的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15796881/