masaoです。最近、太ってきました。そして、おでんのおいしい季節になってきました。
スポンサーリンク
同一キーのハッシュ同士を合計する
タイトルにある、【高速に!】という部分は大袈裟ですが、この方法を知らずに、自分でnil? とかkeys.include? とかを使って計算していたのですが、項目も数千をこえるとと遅い、遅い、遅い!残念な結果に。。。
hash.merge自体も検索すると「遅い」と出てきますが、自分でやるよりは随分と高速な結果になりました。。。では、サンプルコードをどうぞ。
h1 = {"2021-12-1" => 1, "2021-12-2" => 4, "2021-12-3" => 3} h2 = {"2021-12-1" => 5, "2021-12-2" => 1, "2021-12-3" => 3} mh = h1.merge(h2){|key, v1, v2| v1 + v2} # mh {"2021-12-1" => 6, "2021-12-2" => 5, "2021-12-3" => 6} # このサンプルでは、キーがどちらのハッシュも同じであるが、一方にしかないキーの値は # 合計されずにそのままの値でマージされる #
(おまけ)ちょっと前に登山した時の紅葉の写真
うむ~~~。快晴とはいかず。。。