【Python入門】配列とは?各データ型の種類や違い、できることについて解説
Pythonでプログラミングをしていると、「配列」を使う必要になる場面がたよく出てきます。
配列には様々な種類があるのですが、どう使い分ければいいかわからず困惑してしまうこともあるかもしれません。
そこで、この記事では配列の種類やそれぞれの違い、配列を使ってできることについて解説したいと思います。
配列とは?
配列とは、複数の値を1つにまとめて管理することができる仕組みを指します。
通常、変数に保持する値は「文字列」や「数値」といったように、1つの値に対して1つのデータ型を持っています。
word = "テスト" # wordという変数に、テスト(str型)を保持
num = 123 # numという変数に、123(int型)を保持
けれども、配列を使えばデータ型の異なる値同士でも、1つの変数として扱うことが可能です。
ls = ["テスト", 123, True, "test"] # lsという変数に、複数の値(配列)を保持
配列の種類
Pythonでは、複数の値を管理する方法として様々なデータ型が用意されています。
この先では、Pythonで扱われている配列の主な種類について紹介していきます。
リスト(list)
リスト(list型)は、あとから要素の編集(追加や変更、並び替えなど)が可能な配列です。
リストを作成する際は、[]内にカンマ区切りで要素を記述します。
ls = ["テスト", 123, True, "test"] # lsという変数に、リストを保持
また、リスト内の各要素には位置を特定するための「番号」が割り振られます。
リストを使用する際は、それらを用いて必要な要素の取り出しや変更などを行います。
ls = ["テスト", 123, False] # lsという変数に、リストを保持
print(ls[0]) # ls(リスト型)の、0番目(前から1つ目)の要素を表示
print(ls[-1]) # ls(リスト型)の、最後尾(後ろから1つ目)の要素を表示
= 実行結果 =
テスト
False
タプル
タプル(tuple型)は、あとから要素の編集(追加や変更、並び替えなど)ができない配列です。
プログラム内で処理を行う際、間違えて中の要素を書き換えたくない場合などに使用します。
タプルを作成する際は、()内にカンマ区切りで要素を記述します。
tp = ("テスト", 123, True, "test") # tpという変数に、タプルを保持
タプルでもリストと同様、各要素に対して位置を特定するための「番号」が割り振られます。
それらを用いて指定を行うことで、対象となる要素の中身を確認できます。
tp = ("テスト", 123, False) # tpという変数に、タプルを保持
print(tp[0]) # tp(タプル型)の、0番目(前から1つ目)の要素を表示
print(tp[-1]) # tp(タプル型)の、最後尾(後ろから1つ目)の要素を表示
= 実行結果 =
テスト
False
辞書
辞書(dict型)は、要素とラベルとなる「キー(key)」をセットで管理する配列です。
要素を番号順で管理するのではなく、名前を付けて扱いたい場合などに使用します。
辞書を作成する際は、{}内における要素を「キー: 値」として、カンマ区切りで記述します。
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
要素の取り出しや編集を行いたい場合は、対象となるキーを指定することで対応が可能です。
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
profile = {"name": "太郎", "age": 22} # profileという変数に、辞書を保持
print(dc["key1"]) # dc(辞書型)の、キーがkey1の要素を表示
print(profile["age"]) # profile(辞書型)の、キーがageの要素を表示
= 実行結果 =
テスト
22
セット
セット(set型)は、保持している要素の種類のみを管理する配列です。
要素の位置に意味を持たない場合や、重複した値を1つとして数えたい場合などに使用します。
セットを作成する際は、 {}内にカンマ区切りで要素を記述します。
st = {"テスト", 123, True, "test"} # stという変数に、セットを保持
セットには要素の位置を管理する機能がないため、番号などを使って取り出すことはできません。
また、作成した際の順番がそのまま保持されない場合もあります。
st = {"テスト", 123, True} # stという変数に、セットを保持
print(st) # st(セット)の中身を表示
= 実行結果 =
{True, 123, 'テスト'}
配列を使ってできること
Pythonでは、配列内で管理している要素を使って以下の処理を行うことができます。
- 要素の追加・結合や削除
- 要素の変更
- 要素の並び替え(ソート)
- 要素の検索
要素の追加・結合や削除
配列を作成した後でも、必要に応じて新たな要素を追加したり、既にある要素を指定して削除することができます。
また、異なる配列に含まれている要素を1つに結合するといった操作も可能です。
ls = ["テスト", 123, False] # lsという変数に、リストを保持
ls.append(3.14) # ls(リスト)の末尾に「3.14」を追加
ls.remove("テスト") # lsから「テスト」を削除
ls += ["apple", True] # lsに別のリストを結合
print(ls) # lsの中身を表示
= 実行結果 =
[123, False, 3.14, 'apple', True]
要素の変更
配列内で保持している要素に対して、指定した位置の値を書き換えることができます。
変更する際は、「変数[位置] = 変更後の値」の形で記述します。
また位置の指定については、リストであれば対応する番号を、辞書であればキー(key)を使用します。
ls = ["テスト", 123, False] # lsという変数に、リストを保持
ls[0] = "apple" # 0番目(前から1つ目)の要素を「apple」に変更
print(ls) # lsの中身を表示
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
dc["key3"] = "banana" # キーが「key3」の要素を「banana」に変更
print(dc) # dcの中身を表示
= 実行結果 =
['apple', 123, False]
{'key1': 'テスト', 'key2': 123, 'key3': 'banana'}
要素の並び替え(ソート)
配列内に保持された要素の順番を、特定の条件にて並び替えることができます。
昇順/降順のソートはもちろん、現在の配置を逆向きで並び替えることも可能です。
ls = ["apple", "あんこ", "1", "2", "banana", "いろ"] # lsという変数に、リストを保持
ls.reverse() # ls(リスト)の要素を逆順に並び替え
print(ls) # lsの中身を表示
ls.sort() # ls(リスト)の要素を昇順に並び替え
print(ls) # lsの中身を表示
= 実行結果 =
['いろ', 'banana', '2', '1', 'あんこ', 'apple']
['1', '2', 'apple', 'banana', 'あんこ', 'いろ']
要素の検索
指定した要素が配列内にあるかどうか、特定の条件で検索をかけることができます。
また、対象の要素がどの位置にいるかや、いくつ含まれているかといった確認も可能です。
ls = ["テスト", 123, False, "テスト", 3.14, "テスト"] # lsという変数に、リストを保持
print("test" in ls) # ls(リスト)に「test」があるかどうかを表示
print(ls.count("テスト")) # ls内にある「テスト」の個数を表示
print(ls.index(3.14)) # ls内にある「3.14」の位置(番号)を表示
= 実行結果 =
False
3
4
まとめ
この記事では、配列の種類やそれぞれの違い、配列を使ってできることについて解説しました。
配列を使用する際は、目的や用途に合わせて適切なものを選択することが大切です。
少し難しく感じるかもしれませんが、プログラミングを学ぶうえでは避けて通れない道ですので、少しずつ使い慣れていくようにしましょう。