配列はデータを扱ううえで非常に重要です。
配列を知っていることで、実現できる幅が大きく広がります。
とは言っても、プログラミング学び始めでは難しく感じる部分もあると思います。
- 配列って何?
- どうやって配列のデータを扱うの?
- Pythonの配列の使い方がよくわからない
そこで今回は、初心者の方がPythonで配列を使えるように紹介・解説していきます!
本記事で、配列の理解を少しでも深めてもらえればと思います^^
配列とは
配列とは、複数のデータをまとめておく箱のようなものです。
特に、似たようなデータをまとめておく場合などに使います。
例えば、花の種類をデータとして持つことにします。1つ1つをそれぞれ変数に格納すると、下記のようになります。
Flower1 = "バラ"
Flower2 = "チューリップ"
Flower3 = "ひまわり"
Flower4 = "アジサイ"
Flower5 = "菊"
間違いではないですが、ソースコードにだらだらと変数を連ねてしまうのも、あまりいい感じはしません(変数の管理も大変です)。
それに、これではデータ自体を扱うのが大変です。
場合によってはデータの数や指定の花があるかといったことを調べたりしなければならないわけですが、データが100件1000件となると管理しきれません。
では、上記の花のデータを配列に入れてみましょう(Python)。
Flowers = ["バラ", "チューリップ", "ひまわり", "アジサイ", "菊"]
たった1行でまとまってしまいました。
この状態であれば、以下のような処理が簡単にできるようになります。
- 要素の数を数える
- 配列内のデータを増やす/減らす
- 特定の要素の有無を検索する
- データの中の最大、最小値を求める
- 全ての要素に同一の処理を行う
- 配列内のデータを並び替える
これ以外にもいろいろと機能が備わっています。
こんな便利なものを使わない手はありません^^
では、実際にPythonで配列を扱てみましょう。
Pythonで配列を使う
Pythonで配列を具体的に扱っていきましょう。
配列の作り方は先ほど示した通りです。
Flowers = ["バラ", "チューリップ", "ひまわり", "アジサイ", "菊"]
空の配列を宣言することもできます。
list = []
このlistに、後から要素を追加していくこともできます。
配列の中身を確認する
では、配列の中身を見てみましょう。print()を使って中身を確認することができます。
print(Flowers)
#Output
['バラ', 'チューリップ', 'ひまわり', 'アジサイ', '菊']
個々の要素を確認したいときは、以下のような書式で、配列の何番目の要素かを指定します。
print(Flower[2])
#Output
ひまわり
注意すべき点は、配列の先頭からの通し番号は0から始まるという点です。
なので、上記では[2]を指定していますが、実際は配列の3番目の要素を指定していることになります。
for文を使って各要素を出力することもできます。
for flowerName in Flower:
print(flowerName)
#Output
バラ
チューリップ
ひまわり
アジサイ
菊
配列の要素を追加する
後から配列の要素を追加するといったこともできます。
要素の追加には、append()を使います。引数に追加したい要素を渡します。
Flower.append("パンジー")
print(Flower)
#Output
['バラ', 'チューリップ', 'ひまわり', 'アジサイ', '菊', 'パンジー']
append()を使うと、配列の最後に要素が追加されます。
末尾じゃなくて配列の真ん中とかに挿入したい!
という場合は、insert()を使います。insert(挿入する位置, 挿入する値)の順に引数を渡します。
Flower.insert(3, "パンジー")
print(Flower)
#Output
['バラ', 'チューリップ', 'ひまわり', 'パンジー', 'アジサイ', '菊']
配列の要素は0, 1, 2, 3… なので、今回は4番目に”パンジー”を挿入しました。
配列同士の結合
配列同士を結合させることもできます。
append()で結合してみましょう。
Flower = ["バラ", "チューリップ", "ひまわり", "アジサイ", "菊"]
Flower2 = ["パンジー", "ユリ", "コスモス"]
print(Flower)
#Output
['バラ', 'チューリップ', 'ひまわり', 'アジサイ', '菊', ['パンジー', 'ユリ', 'コスモス']]
???
配列の中に配列があります。insert()を使っても同様の現象が起きます。
これは、[“パンジー”, “ユリ”, “コスモス”] が1つの要素として扱われているためにこのような構造になってしまうのです。
リストの要素を1つずつ結合したいという場合は、extend()を使います。
Flower.extend(Flower2)
print(Flower)
#Output
['バラ', 'チューリップ', 'ひまわり', 'アジサイ', '菊', 'パンジー', 'ユリ', 'コスモス']
さらになんと、ただの足し算でも結合できてしまいます。
Flowers = Flower + Flower2
print(Flowers)
#Output
['バラ', 'チューリップ', 'ひまわり', 'アジサイ', '菊', 'パンジー', 'ユリ', 'コスモス']
配列の要素を削除する
配列の要素を削除する場合は、pop()を使います。
削除したい要素の番号を指定します。
Flower = ["バラ", "チューリップ", "ひまわり", "アジサイ", "菊"]
Flower.pop(2)
print(Flower)
#Output
['バラ', 'チューリップ', 'アジサイ', '菊']
3番目の要素である”ひまわり”が削除されました。
2次元配列について
先ほども少し出てきましたが、配列の中に配列要素を持つこともできます。
こういった構造を2次元配列と呼びます。
list = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
この構造は、表形式のように行列が存在するデータを扱う際に便利です。1つの要素を1行と見立ててデータを扱うことができるためです。
上記の場合、
1 2 3 4
5 6 7 8
9 10 11 12
といった表形式のデータとみなすことができます。これは、pandasライブラリのDataFrameと同じようなデータ構造と言えます。
まとめ
配列について少しでも理解が深まったでしょうか。
配列はデータを保持する構造としてよく用いられるので、その使い方は必ず知っておく必要があると思います。
1つ1つ理解を深めていって、Pythonを使いこなしていきましょう!
ではでは👋