Ruby配列の連結と分割を完全ガイド!+・concat・|・&・partition・each_sliceを初心者向けに解説
生徒
「配列が増えてきて、ごちゃごちゃしてきました。まとめたり分けたりできますか?」
先生
「Rubyの配列には、連結したり、条件で分けたりする便利な方法があります。」
生徒
「難しそうですが、パソコン初心者でも分かりますか?」
先生
「大丈夫です。紙のリストを整理する感覚で覚えられますよ。」
1. 配列の連結と分割とは?
Rubyの配列は、複数のデータを順番に並べて保存する箱です。 買い物メモややることリストのように、いくつも値をまとめて扱えます。
プログラムを書いていると、「二つの配列を一つにまとめたい」 「一つの配列を条件ごとに分けたい」という場面が必ず出てきます。 これが連結と分割です。
2. +演算子で配列を連結する
一番分かりやすい連結方法が「+」です。 紙のリストを横につなげるイメージで使えます。
a = [1, 2, 3]
b = [4, 5]
p a + b
[1, 2, 3, 4, 5]
元の配列は変わらず、新しい配列が作られます。 初心者はまずこの方法を覚えると安心です。
3. concatで配列を直接つなげる
concatは、配列そのものに別の配列を追加します。 ノートに直接書き足すようなイメージです。
a = [1, 2]
b = [3, 4]
a.concat(b)
p a
[1, 2, 3, 4]
元の配列が変わる点に注意しましょう。 「もう元に戻さない」と決めているときに向いています。
4. | 演算子で重複を除いて連結
「|」は重複を自動で消しながら連結します。 同じ内容が何度も出てほしくない場合に便利です。
a = [1, 2, 3]
b = [3, 4, 5]
p a | b
[1, 2, 3, 4, 5]
名簿を統合するときのイメージで覚えると理解しやすいです。
5. & 演算子で共通部分だけ取り出す
「&」は、二つの配列に共通している要素だけを取り出します。 両方に書いてある名前を探すような感覚です。
a = [1, 2, 3]
b = [2, 3, 4]
p a & b
[2, 3]
条件が重なるデータを探すときに役立ちます。
6. partitionで条件ごとに分割する
partitionは、条件によって配列を二つに分けます。 例えば「合格と不合格」「偶数と奇数」のように分類できます。
numbers = [1, 2, 3, 4, 5]
result = numbers.partition { |n| n.even? }
p result
[[2, 4], [1, 3, 5]]
even?は「偶数かどうか」を調べる命令です。 条件に合うものと合わないものに分かれます。
7. each_sliceで一定数ずつ分割する
each_sliceは、配列を決まった数ずつ区切ります。 お菓子を三個ずつ袋に分けるようなイメージです。
numbers = [1, 2, 3, 4, 5, 6]
numbers.each_slice(2) do |group|
p group
end
[1, 2]
[3, 4]
[5, 6]
データをまとめて処理したいときにとても便利です。
8. 連結と分割を使いこなすコツ
配列操作は、紙のリスト整理を想像すると理解しやすくなります。 「足す」「混ぜる」「分ける」という感覚を大切にしましょう。
Rubyの配列はとても柔軟なので、 慣れてくるとデータ整理が一気に楽になります。