【发布时间】:2016-01-27 11:21:01
【问题描述】:
循环在具有某些键值对的文本文件上运行 3 次。每个循环都返回一个新的哈希,打印在下面。我想将这些哈希存储到另一个哈希中。 group1、group2 和 group3 是哈希的键:
"group1"
{
"path"=>"/tmp/",
"max_hits"=>262144,
"min_hits"=>5240
}
"group2"
{
"basic_size_limit"=>262144,
"path"=> "/usr/bin/ruby",
"max_hits"=>2412,
"min_hits"=>871
}
"group3"
{
"path"=>"/usr/tmp/",
"basic_time_limits"=>[26214400, 26214401, 26214402],
}
我将上述哈希初始化为groups = Hash.new,而不是将它们存储到哈希哈希中。我想初始化更大的哈希值,比如group_of_groups = Hash.new{|hash, key| hash[key] = Hash.new}。
group_of_groups = Hash.new{|hash, key| hash[key] = Hash.new}
Loop i in 1 .. 3
groups = Hash.new
####
Do something and add to the hash groups
####
key_name = "group" + i
group_of_groups[key_name] = groups
end Loop
但它只给我{"group1"=>{}, "group2"=>{}, "group3"=>{}}
如何解决这个问题?
【问题讨论】:
-
尚不清楚您已经拥有哪些价值观。上面的 3 个组在单个哈希中是否作为变量?请编辑以显示更多真实的 Ruby 代码并演示这 3 个哈希的来源(我还看到
"path"= "/usr/bin/ruby"使用不正确的运算符=而不是=>) -
这是我打印的三个不同的哈希值。我更正了
=n=>的错误。我在这里放了更多信息 -
我知道它们是 3 个不同的哈希值,但它们是存储在变量中、作为数组还是其他方式?
-
一个循环运行了 3 次,生成了三个不同的哈希值,然后我将每个哈希值逐个放入更大的哈希值中。但是当我在循环之后打印它时,更大的哈希只打印键但没有值!其实原来的程序挺大的。
-
@DaveNewton 我正在用更多信息更新问题。