Ruby ハッシュのキーを条件を指定して削除する
Rubyで、delete_ifを使用して、ハッシュのキーを条件を指定して削除するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
delete_if使い方
delete_ifを使用すれば、ハッシュのキーを条件を指定して削除することが可能です。
hash.delete_if{|k, v| 条件}
以下は、ハッシュのキーを条件を指定して削除するサンプルコードとなります。
h = {'key1' => 1, 'key2' => 2, 'key3' => 3}
p h.delete_if{|k, v| k == 'key1'}
# {"key2"=>2, "key3"=>3}
p h
# {"key2"=>2, "key3"=>3}
# aaが含まれていれば削除
h = {'aa' => 1, 'aab' => 2, 'bb' => 3}
p h.delete_if{|k, v| k.include?("aa")}
# {"bb"=>3}
p h
# {"bb"=>3}
キーが含まれていない場合はエラーにならずに元の値のままとなります。
h = {'aa' => 1, 'aab' => 2, 'bb' => 3}
p h.delete_if{|k, v| k.include?('c')}
# {"aa"=>1, "aab"=>2, "bb"=>3}
p h
# {"aa"=>1, "aab"=>2, "bb"=>3}
reject!を使用しても、キーを削除することが可能です。
h = {'aa' => 1, 'aab' => 2, 'bb' => 3}
p h.reject!{|k, v| k.include?('aa')}
# {"bb"=>3}
p h
# {"bb"=>3}
reject!の場合は、条件に値がない場合は「nil」が返ってきます。
h = {'aa' => 1, 'aab' => 2, 'bb' => 3}
p h.reject!{|k, v| k.include?('c')}
# nil
p h
# {"aa"=>1, "aab"=>2, "bb"=>3}
-
前の記事
python pandasでDataFrameの列の最大値を求める 2021.09.03
-
次の記事
javascript document referrerが取得できない 2021.09.04
コメントを書く