用哈希值替换所有键的最佳方法是什么? 我提出了:
Hash[hash.map {|k,v| [v,k]}]
有更好的解决方案吗?
答案 0 :(得分:5)
有一种内置的方法:
hash.invert
答案 1 :(得分:2)
可能invert
哈希:
{ 'a' => 1, 'b' => 2 }.invert # => {1=>"a", 2=>"b"}
但要注意副作用:
{ 'a' => 1, 'b' => 2, 'c' => 2 }.invert # => {1=>"a", 2=>"c"}
哈希的键必须是唯一的,但值不一定是。当您反转哈希时,重复的值将发生冲突,相互覆盖,最后一个获胜。