この記事では、リスト、タプル、配列の違いと、それぞれの使用方法をサンプルコードと共に紹介します。
リスト(List)
リストは変更可能(Mutable)であるため、プログラム実行中にリストの内容を変更する必要がある場合に使用します。リストの初期化には角括弧[]を使用します。
#coding: UTF-8
my_list = [1, 2, 3, "Python", True] # 異なるデータ型の要素を持つリスト
my_list.append("New item") # リストの末尾に新しい要素を追加
print(my_list) # リストの内容を表示
実行結果
D:\Sample\Python>python sample.py
[1, 2, 3, 'Python', True, 'New item']
例えば、要素を追加、削除、またはリスト内の要素を変更する操作が必要な場合にリストを使用します。リストは非常に柔軟で、異なるデータ型の要素を含むことができます。
タプル(Tuple)
タプルは変更不可能(Immutable)であり、一度作成されるとその内容を変更することができません。この特性により、プログラム内で変更されるべきではないデータを格納するのに適しています。タプルの初期化には丸括弧()を使用します。
#coding: UTF-8
my_tuple = (1, 2, 3, "Python", True) # 異なるデータ型の要素を持つタプル
# my_tuple[0] = "change" # この行を実行するとエラーになる
print(my_tuple) # タプルの内容を表示
実行結果
D:\Sample\Python>python sample.py
(1, 2, 3, 'Python', True)
たとえば、タプルの変更不可能な性質を利用し、関数から固定値(定数)と扱いたい複数の値のセットを返すために使用できます。タプルの変更不可能性は、データの整合性を保持するのに役立ちます。
以下は、関数から固定値(定数)と扱いたい複数の値のセットを返すサンプルと、タプルを変更することにより発生するエラーの例です。
#coding: UTF-8
def get_min_max():
# 最小値、最大値をタプルとして返す
return (0, 100)
# 最小値、最大値を固定値(定数)として取得
min_max = get_min_max()
# 表示
print(min_max)
# 最小値を表す要素[0]を変更しようとするとエラー
min_max[0] = 1
実行結果
D:\Sample\Python>python sample.py
(0, 100)
Traceback (most recent call last):
File "D:\Sample\Python\sample.py", line 13, in <module>
min_max[0] = 1
~~~~~~~^^^
TypeError: 'tuple' object does not support item assignment
配列(Array)
配列は、大規模な数値データを効率的に格納することに適したデータ構造です。ここでは高機能なNumPy配列を例として紹介します。
#coding: UTF-8
import numpy as np # NumPyライブラリをインポート
my_array = np.array([1, 2, 3, 4, 5]) # NumPy配列を作成
my_array = my_array + 5 # 配列のすべての要素に5を加算
print(my_array) # 配列の内容を表示
実行結果
D:\Sample\Python>python sample.py
[ 6 7 8 9 10]
NumPyは、機械学習、ディープラーニング、科学計算、データ分析など、大規模な数値データの操作に使用します。このような計算を行わないのであれば、リストやタプルを使う方が手軽で良いでしょう。
まとめ
本記事では、リスト、タプル、配列についての特徴と使い分けについて紹介しました。それぞれの特徴を把握し適切なデータ構造を選択することにより、プログラムの効率や可読性を高めることができます。