【Python】リスト型(配列)を扱ってみよう!

Pythonロゴ

Pythonには変数として「数値」「文字列」「配列」「辞書」など複数のタイプがあります。 こちらの記事では「リスト型(配列)」についてまとめてみました。

Pythonの配列の種類

名称ルール
リスト型 保存後、追記・変更可
タプル型 保存後、追記・変更不可

リスト型について 

角括弧の中に要素(数値、文字列)を格納することでリスト型を作る事ができます。
0番からキーを指定することで対象の情報を取得、変更する事ができます。

list1 = ['a', 'b', 'c']
print(list1)
print(type(list1))
['a', 'b', 'c']
<class 'list'>

1番のキーの要素を取得する場合は下記のように記載

list2 = ['a', 'b', 'c']
print(list2[1])

# 結果 b

1番のキーの要素を変更する場合は下記のように記載

list3 = ['a', 'b', 'c']
list3[1] = 'z'
print(list3)

# 結果 ['a', 'z', 'c']

リスト型 (複数階層)

角括弧の中にさらに角括弧を付け加えて要素を格納する事で複数階層のリスト型を作る事ができます。

list4 = [['a', 'b', 'c'], ['d', 'e', 'f']]
print(list4)
print(type(list4))
[['a', 'b', 'c'], ['d', 'e', 'f']]
<class 'list'>

リスト型のよく使う処理

指定インデックスの範囲で要素取得

指定インデックス範囲の要素を取得する場合は角括弧を使い下記のように入力します。
変数名[開始インデックス:終了インデックス]

list17 = ['a', 'b', 'c', 'd', 'e']
print(list17[1:3]) # 開始インデックス ~ 終了インデックスまで
print(list17[:3]) # 始め ~ 終了インデックスまで
print(list17[3:]) # 開始インデックス ~ 終了まで

# 結果
# ('b', 'c')
# ('a', 'b', 'c')
# ('d', 'e')

指定要素のインデックスを取得

list18 = ['a', 'b', 'c']
print(list18.index('c'))

# 結果 2

指定要素の数を取得

list19 = ('a', 'b', 'c', 'a', 'd')
print(list19.count('a'))
print(list19.count('z')) # 存在しない場合, 0になる

# 結果 
2
0

最終行に要素を追加

list5 = ['a', 'b', 'c']
list5.append('z')
print(list)

# 結果 ['a', 'b', 'c', 'z']

指定インデックスの前に要素を追加

list6 = ['a', 'b', 'c']
list6.insert(0, 'z')
print(list)

# 結果 ['z', 'a', 'b', 'c']

最後の要素を抜き出し

※popは抜き出し処理となりますので、処理後は配列から情報がなくなります。

list7 = ['a', 'b', 'c']
txt7 = list7.pop()  # 最終の要素を抜き出し
print(txt7)
print(list7)

# 結果
c 
['a', 'b']

指定インデックスの要素を抜き出し

※popは抜き出し処理となりますので、処理後は配列から情報がなくなります。

list8 = ['a', 'b', 'c']
txt8 = list8.pop(1)  # 1番の要素を抜き出し
print(txt8)
print(list8)

# 結果
b 
['a', 'c']

指定要素のインデックスを検索・取得

list9 = ['a', 'b', 'c']
print(list9.index('b'))  # bの要素を抜き出し

# 結果 1

指定要素を削除

複数同じ要素を持っている場合は全て削除されます。

list10 = ['a', 'b', 'c', 'b']
list10.remove('b')  # bの要素を削除
print(list10)

# 結果 ['a', 'c']

指定インデックスの要素を削除

list11 = ['a', 'b', 'c']
del list11[1]  # 1番キーの要素削除
print(list11)

# 結果 ['a', 'c']

全ての要素を削除

list12 = ['a', 'b', 'c']
list12.clear()  # 全要素削除
print(list12)

# 結果 []

リストの結合

2点のリストをまとめる場合に使用します。

list13a = ['a', 'b', 'c']
list13b = ['d', 'e', 'f']
list13a.extend(list13b)  # extendにて配列を結合
print(list13a)
print(list13b)

# 結果
# ['a', 'b', 'c', 'd', 'e', 'f']
# ['d', 'e', 'f']

extendを使わず結合する場合は「+=」を利用します。

list14a = ['a', 'b', 'c']
list14b = ['d', 'e', 'f']
list14a += list14b  # +=にて配列を結合
print(list14a)
print(list14b)

# 結果
['a', 'b', 'c', 'd', 'e', 'f']
['d', 'e', 'f']

リストの値を昇順並び替え

list15 = ['5', '3', '1', '2', '4']
list15.sort()
print(list15)

# 結果 ['1', '2', '3', '4', '5']

リストの値を降順並び替え

list16 = ['5', '3', '1', '2', '4']
list16.sort(reverse=True)
print(list16)

# 結果 ['5', '4', '3', '2', '1']

その他処理に関して

リスト型の処理は上記以外にもたくさん種類があります。
詳細はPython公式のドキュメントを確認ください。

参考 Pythonチュートリアル(リスト)Pythonドキュメント

まとめ

リスト型(配列)に関して基本的な部分を再確認いたしました。
次回はタプル型について確認していきます。

記事内で使った単語・関数

インデックスについて
1つの変数に複数の要素を保存する場合、要素を保存する枠が必要になります。
枠の識別をするためにインデックスという文字が割り当てられます。
インデックスは要素が増えると自動で連番が割当られます。

サンプルプログラム

こちらの記事で作成したプログラムはGitHub環境にアップしております。
下記からダウンロードいただけます。

参考 list.py スクリプトGitHub python-beginner Pythonロゴ【Python】タプル型(配列)を扱ってみよう!Pythonロゴ【Python】文字列を扱ってみよう!