職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

キーと値毎に判定を行い該当するキーと値を取り除く

2022年03月31日 | Ruby3.0.1
キーと値毎に判定を行い該当するキーと値を取り除く


【開発環境】
OS:Win11(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【「delete_if」メソッド】
Hashクラスのオブジェクトに含まれるキーと値に対してブロック内で処理を実行し結果が「true」の要素を取り除く方法として、「delete_if」メソッドがある。

・書式
Hashオブジェクト.delete_if {|key, value| ... }

戻り値:
自分自身のハッシュオブジェクト

「delete_if」メソッドはその後に記述されたブロック内でキーと値毎に実行する文を記述します。

例文
h = {"suzuki" => 87, "itou" => 76, "yamada" => 69}

h.delete_if {|key, value|
value < 80
}
ブロック内で値が80よりも小さいキーと値を削除します。
また、
同じことを行うメソッドとして「reject!」メソッドが用意されている。
・書式
Hashオブジェクト.reject! {|key, value| ... }

戻り値:
自分自身のハッシュオブジェクト。要素を削除しなかった場合はnil

・「reject!」メソッドは「delete_if」メソッドと同じ処理を行いますが、削除するキーと値が無かった場合に戻り値として「nil」を返します。

【複製されたハッシュオブジェクトからキーと値を取り除く】
また自分自身のハッシュオブジェクトからキーと値を取り除くのではなく、複製したハッシュオブジェクトからキーと値を取り除くメソッドも用意されている→「reject」メソッド

・書式
Hashオブジェクト.reject {|key, value| ... }

戻り値:
複製されキーと値が削除されたハッシュオブジェクト

「reject」メソッドはその後に記述されたブロック内でキーと値毎に実行する文を記述します。キーと値はブロック内の「|key, value|」の箇所に書かれた変数で参照できます。ブロック内の処理が真(true)となるキーと値を複製されたハッシュオブジェクトから削除します。

例文
h = {"suzuki" => 87, "itou" => 76, "yamada" => 69}

newHash = h.delete_if {|key, value|
value < 80
}

サンプルプログラム
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ハッシュからキーと値を取り除く

2022年03月27日 | Ruby3.0.1
ハッシュからキーと値を取り除く


【開発環境】
OS:Win11(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【Hashクラスのオブジェクトに含まれるキーと値を取り除く方法】
Hashクラスのdeleteメソッドを使う

・書式
Hashオブジェクト.delete(key)

引数;
key 削除したい値に対応するキー
戻り値:
取り除かれた値。キーが存在しなかった場合はnil

例文
h = {"suzuki" => 87, "itou" => 76, "yamada" => 69}
h.delete("itou")
この場合、キーが「itou」である「76」と言う値が(キーと一緒に)ハッシュから取り除かれます。

また指定したキーがハッシュに存在しなかった場合の処理を記述するブロック付きのメソッドも利用できます。

Hashオブジェクト.delete(key) {|key| ... }

引数;
key 削除したい値に対応するキー
戻り値:
取り除かれた値。キーが存在しなかった場合はブロック内を実行した結果

ハッシュからキーに対応する値を取り除く点は同じですが、キーがハッシュ内に存在しなかった場合にはブロック内を実行した結果を返します。

・例文
h = {"suzuki" => 87, "itou" => 76, "yamada" => 69}

h.delete("kudou"){|key|
print("#{key} は存在しません¥n")
}

サンプルプログラム
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ネストされた配列を行列とみなして行と列を入れ替える

2022年03月21日 | Ruby3.0.1
ネストされた配列を行列とみなして行と列を入れ替える

【開発環境】
OS:Win11(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【transposeメソッド】
配列に要素として他の配列が格納されている場合に、配列を行列と見なし行と列を入れ替える方法として、transposeメソッドを使う

・書式
Arrayオブジェクト.transpose
「transpose」メソッドは行と列を入れ替えた新しい配列を返す

サンプルプログラム



コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

配列内の要素をソートする

2022年03月20日 | Ruby3.0.1
配列内の要素をソートする


【開発環境】
OS:Win11(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【sortメソッド】
配列に格納されている各要素を一定の規則でソートする方法として、sortメソッドがある。

・書式
Arrayオブジェクト.sort

・例文
ary = [4, 2, 5, 1, 3]
newary = ary.sort
結果
新しい配列は、[1, 2, 3, 4, 5]となる。

また
「sort」メソッドには「sort!」メソッドも用意されている。
Arrayオブジェクト.sort!
「sort!」メソッドの場合には新しい配列を返すのではなく、対象の配列自身をソートした配列に変更する

【ソートの方法を指定する】
デフォルトでは各要素を「<=>」メソッドを使って比較していますが「sort」メソッドの後にブロックを記述してソートの方法を指定することが出来る

・書式
Arrayオブジェクト.sort {|a, b| ... }

サンプルプログラム

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

配列内の要素を逆順に並び替える

2022年03月11日 | Ruby3.0.1
配列内の要素を逆順に並び替える


【開発環境】
OS:Win11(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1

【reverseメソッド】
配列に格納されている各要素を逆の順場に並び替える方法として、reverseメソッドがある。

・書式
Arrayオブジェクト.reverse
「reverse」メソッドは配列に格納されている要素を逆の順番で格納した新しい配列を返します

・例文
ary = [1, 2, 3, 4, 5]
newary = ary.reverse
結果
[5, 4, 3, 2, 1]
となる。

サンプルプログラム
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする