【问题标题】:Ruby - keys of one hash into values of another hashRuby - 一个哈希的键到另一个哈希的值
【发布时间】:2015-02-14 02:46:20
【问题描述】:

我必须像这样散列:

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"
}

但我不知道从哪里开始。帮助表示赞赏。

【问题讨论】:

  • 你在什么条件下合并?
  • 我会大胆猜测您在寻找什么:hash1.keys.zip(hash2.keys).to_h #=> {"a"=>"1", "b"=>"2", "c"=>"3", "d"=>"4"}

标签: ruby hash


【解决方案1】:

您可以尝试以下方法:

Hash[hash1.keys.zip(hash2.keys)]

首先,你会得到每个散列的键数组 hash1.keyshash2.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"}

Example

【讨论】:

    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多