Ruby - 一个散列的键到另一个散列的值
Ruby - keys of one hash into values of another hash
我必须像这样散列:
hash1 = {
"a" => 1,
"b" => 1,
"c" => 1,
"d" => 1
}
hash2 = {
"1" => 1,
"2" => 1,
"3" => 1,
"4" => 1
}
我需要合并它们,所以我得到了这个:
hash1 = {
"a" => "1",
"b" => "2",
"c" => "3",
"d" => "4"
}
但我不知道从哪里开始。帮助表示赞赏。
您可以尝试以下方法:
Hash[hash1.keys.zip(hash2.keys)]
首先,你得到每个散列的键数组 hash1.keys
和 hash2.keys
:
["a", "b", "c", "d"]
["1", "2", "3", "4"]
其次,你用hash1.keys.zip(hash2.keys)
创建了一个数组数组:
[["a", "1"], ["b", "2"], ["c", "3"], ["d", "4"]]
然后 和 Hash[<...>]
你创建一个 Hash
其中第一个内部数组的第一个值作为键,第二个作为值:
{"a"=>"1", "b"=>"2", "c"=>"3", "d"=>"4"}
我必须像这样散列:
hash1 = {
"a" => 1,
"b" => 1,
"c" => 1,
"d" => 1
}
hash2 = {
"1" => 1,
"2" => 1,
"3" => 1,
"4" => 1
}
我需要合并它们,所以我得到了这个:
hash1 = {
"a" => "1",
"b" => "2",
"c" => "3",
"d" => "4"
}
但我不知道从哪里开始。帮助表示赞赏。
您可以尝试以下方法:
Hash[hash1.keys.zip(hash2.keys)]
首先,你得到每个散列的键数组 hash1.keys
和 hash2.keys
:
["a", "b", "c", "d"]
["1", "2", "3", "4"]
其次,你用hash1.keys.zip(hash2.keys)
创建了一个数组数组:
[["a", "1"], ["b", "2"], ["c", "3"], ["d", "4"]]
然后 和 Hash[<...>]
你创建一个 Hash
其中第一个内部数组的第一个值作为键,第二个作为值:
{"a"=>"1", "b"=>"2", "c"=>"3", "d"=>"4"}