0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby】配列の扱い方について逆引き形式でまとめてみた

Posted at

はじめに

Rubyの配列について、やりたいことから逆引きできるようにまとめてみました!

配列とは

配列とは、複数の値をまとめて格納できるオブジェクトのこと

配列の例
fruits = ['りんご','みかん','ばなな'] #複数の値を一つまとめて変数として格納できる

上記の'りんご'や'みかん'など、配列内の各値を要素と呼ぶ

要素を設定したい場合

<記述方法>
変数 = [値1,値2,...]

a = [1,2,3] #数値
b = ['a','b','c'] #文字列
c = ['a',1,0.5] #=> 異なる種類の型も可能

要素の取得関連

指定した位置の要素を取得したい場合

<記述方法>
配列[位置]

要素の取得例
a = [1,2,3]
puts a[0] #=> 1
puts a[1] #=> 2
puts a[2] #=> 3

最後の要素を取得したい場合

<記述方法>

  • 配列[-1]
  • 配列.last
最後の要素を取得した例
a = [1,2,3]
puts a[-1] #=> 3
puts a.last #=> 3

最初の要素を取得したい場合

<記述方法>

  • 配列[0]
  • 配列.first
要素の取得例
a = [1,2,3]
puts a[0] #=> 1
puts a.first #=> 1

n番目からm個分の要素を取得したい場合

<記述方法>
配列[位置,個数]

3番目の要素から4個分の要素を取得する例
a = [1,2,3,4,5,6,7,8]
p a[2,4] #=>[3, 4, 5, 6]

要素を変更したい場合

<記述方法>
配列[index] = 変更する値

要素の変更例
a = [1,2,3]
a[0] = "1" 
a[1] = "りんご"
a[2] = 0 

p a #=> ["1", "りんご", 0]

要素の追加関連

要素を追加したい場合

<記述方法>
[] << 追加する値

要素の追加例
a = []
a << 1
a << 2
a << 3

p a #=> [1, 2, 3]

複数の値をまとめて配列に追加したい場合

<記述方法>
配列.push(値1,値2,...)

複数の値を追加する例
a = [1,2,3,4,5,6,7,8]
a.push(9,10,11)
p a #=>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

要素の削除関連

指定した値を削除したい場合

<記述方法>
配列.delete(削除する値)

指定した要素を削除する例
a = [1,2,3,1]
a.delete(1)
p a #=>[2, 3]

指定した位置の要素を削除したい場合

<記述方法>
配列.delete_at(位置)

指定した位置の要素を削除する例
a = [1,2,3,1]
a.delete_at(0)
p a #=>[2, 3, 1]

初期化関連

配列を初期化したい場合

<記述方法>

  • 変数 = []
  • 変数 = Array.new
配列の初期化例
a = []
b = Array.new

p a #=>#[]
p b #=>#[]

〜個の要素を持つ配列を初期化したい場合

<記述方法>
変数 = Array.new(要素数)

〜個の要素を持つ配列を初期化する例
a = Array.new(5)
p a #=>#[nil, nil, nl, nil, nil]

a = Array.new(5,0)
p a #=> [0, 0, 0, 0, 0]

配列を変数に分けて格納したい場合

<記述方法>
変数1,変数2,変数3 = 配列

配列を変数に分けて格納した例
a = [1,2,3]
b,c,d = a
puts b,c,d

#=> 1
# 2
# 3

配列を変数に分けて格納したい場合(余りがでる場合)

<記述方法>
変数1,変数2,*変数3 = 配列

配列を変数に分けて格納した例
a = [1,2,3,4,5]
b,c,d,*e = a
p b,c,d,e

#=> 1
# 2
# 3
# [4, 5]

連結関連

配列を連結させたい場合

<記述方法>
配列a + 配列b

配列を変数に分けて格納した例
a = [1,2,3] 
b = [3,4,5]

p a + b #=>[1, 2, 3, 3, 4, 5]

配列aに配列bを連結させたい場合

<記述方法>
配列a.concat(配列b)

配列aに配列bを連結させた例
a = [1,2,3] 
b = [3,4,5]

a.concat(b)
p a #=> [1, 2, 3, 3, 4, 5]

#集合関連

配列aと配列bの重複値を排除した配列cを生成する場合

<記述方法>
配列a | 配列b

和集合の例
a = [1,2,3] 
b = [3,4,5]

c = a | b
p c #=> [1, 2, 3, 4, 5]

配列aと配列bに共通する値を格納した配列cを生成する場合

<記述方法>
配列a & 配列b

積集合の例
a = [1,2,3] 
b = [3,4,5]

c = a & b
p c #=> [3]

配列aから配列bの値を排除した配列cを生成する場合

<記述方法>
配列a - 配列b

差集合の例
a = [1,2,3] 
b = [3,4,5]

c = a - b
p c #=> [3]

配列展開関連

配列を展開して、複数の引数として使用する場合

<記述方法>
*配列

配列の展開(splat展開)例
a = [1,2,3,4,5]

p a 
#=>[1, 2, 3, 4, 5]

p *a
#=>1
# 2
# 3
# 4
# 5

引数の数が可変なメソッドを定義する場合

<記述方法>
def a(*引数)
end

引数の数が可変なメソッドを定義した例
def a(val1,val2,*val3)
    p val1
    p val2
    p val3
end

a(1,2,3,4,5,6)
#=>1
# 2
# [3, 4, 5, 6]

文字列⇨配列関連

文字列を値に持つ配列を簡潔に書く方法

<記述方法>
%w(文字列1 文字列2 文字列3) 

<結果>
["文字列1","文字列2","文字列3"]

%w記法の例
a = ["a","b","c"]
b = %w(a b c)

p a #=>["a", "b", "c"]
p b #=>["a", "b", "c"]

文字列を値に持つ配列を簡潔に書く方法

<記述方法>
%w(文字列1 文字列2 文字列3) 

<結果>
["文字列1","文字列2","文字列3"]

%w記法の例
a = ["a","b","c"]
b = %w(a b c)

p a #=>["a", "b", "c"]
p b #=>["a", "b", "c"]

文字列を一文字ずつ分割して配列にする場合

<記述方法>
'abcde'.chars

<結果>
["a", "b", "c", "d", "e"]

文字列を分割して配列にする例
a = 'abcde'.chars
p a #=>["a", "b", "c", "d", "e"]

文字列を一文字ずつ分割して配列にする場合

<記述方法>
'abcde'.chars

<結果>
["a", "b", "c", "d", "e"]

文字列を分割して配列にする例
a = 'abcde'.chars
p a #=>["a", "b", "c", "d", "e"]

文字列を指定の区切り文字毎に分割して配列にする場合

<記述方法>
'abcde'.split(区切り文字)

<結果>
["a", "b", "c", "d", "e"]

文字列を指定の区切り文字毎に分割して配列にする例
a = 'a,b,c,d,e'.split(',')
p a #=>["a", "b", "c", "d", "e"]
``
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?