Ruby/Rails:将范围转换为哈希

gjb*_*gjb 7 ruby ruby-on-rails ruby-on-rails-3

将范围1..10转换为以下格式的哈希的最简单方法是什么?

{
  1 => '£1',
  2 => '£2',
  # ...
}
Run Code Online (Sandbox Code Playgroud)

我试过这样做map,但最终得到一个哈希数组而不是一个哈希.

谢谢.

rub*_*nce 14

Hash[(1..10).map { |num| [num, "£#{num}"] }]
Run Code Online (Sandbox Code Playgroud)

要么

(1..10).inject({}) { |hash, num| hash[num] = "£#{num}"; hash }
Run Code Online (Sandbox Code Playgroud)

或者在Ruby 1.9中

(1..10).each_with_object({}) { |num, hash| hash[num] = "£#{num}" } 
Run Code Online (Sandbox Code Playgroud)