迭代特定范围的哈希值

kru*_*hah 4 ruby hash

如何传递哈希范围以从索引1到最后一次迭代?

h = {}

h[1..-1].each_pair do |key,value|
  puts "#{key} = #{value}
end
Run Code Online (Sandbox Code Playgroud)

此代码返回错误.我怎么可以在哈希中传递范围?

编辑:

我想打印第一个键和值而不进行任何计算.

从第二个键和值我想在我的哈希值上做一些计算.

为此我写了这段代码... store_content_in_hash包含键和值.

first_key_value = store_content_in_hash.shift
f.puts first_key_value[1]
f.puts
store_content_in_hash.each_pair do |key,value|
  store_content_in_hash[key].sort.each {|v| f.puts v }
  f.puts
end
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决这个问题?

hor*_*guy 8

仅在Ruby 1.9中:

给出哈希:

h = { :a => :b, :c => :d, :e => :f }
Run Code Online (Sandbox Code Playgroud)

像这样:

Hash[Array(h)[1..-1]].each_pair do |key, value|
    # ...
end
Run Code Online (Sandbox Code Playgroud)

这将迭代以下散列,{ :c => :d, :e => f }因为范围排除了第一个键/值对.