An Embedded Engineer’s Blog

とある組み込みエンジニアの備忘録的なブログです。

Python学習メモ - その5

まえがき

最近、Python を勉強し始めたので、その学習メモです。

今回はタプル(Tuple)についてです。


タプル(Tuple)

プログラミングをしていると、複数のデータをまとめて扱いたいときがあります。
例えば、座標などがそうです。
座標は、x軸とy軸(3次元の場合にはz軸)が合わさって意味のあるのデータになります。
タプルを使うことでそういった複数のデータを扱いやすくなります。

x = 1
y = 2
z = 3

tuple_value = (x, y, z)

print(tuple_value)

実行結果

(1, 2, 3)


タプルは、一度宣言すると値の追加や変更・削除ができません。
こういったデータのことをイミュータブル(不変)であると言います。
そのため、タプルは入力データや計算途中で使われる一時的なデータなど、勝手に改変されたくないデータに使用されることが多いです。


タプル定義 & アクセス

タプルは複数のデータをカンマ( , )で区切ることで定義することができます。
前後のカッコ「( )」はつけなくても良いのですが、わかりやすくするためにつけられることが多いです。
タプルで定義したデータの各要素へのアクセスは"[i]"で行います。
インデックス i は 0 〜 n-1 (n : 要素数)となります。
※ タプルの要素へのアクセスは0ベースインデックスとなります

tuple_values = (1, 2, 3)

print(tuple_values)
print(tuple_values[0])
print(tuple_values[1])
print(tuple_values[2])

実行結果

(1, 2, 3)
1
2
3


複数型

タプルには複数のデータ型の値を混在させることができます。

tuple_values = (1, 3.14, "tuple")

print(tuple_values)
print(tuple_values[0])
print(tuple_values[1])
print(tuple_values[2])

実行結果

(1, 3.14, 'tuple')
1
3.14
tuple


インデックス検索

タプルの各要素から、特定の値が含まれているインデックス番号を取得するには、index()メソッドを使用します。
ただし、同じ値が複数含まれている場合、最初に見つかったインデックス番号が返されます。

tuple_values = (1, 2, 3, 1, 2, 3)

index = tuple_values.index(3)

print(index)

実行結果

2


指定要素数取得

タプルに指定した値の要素がいくつ含まれているかを数えるには、count()メソッドを使用します。

tuple_values = (1, 2, 3, 1, 2, 3)

count = tuple_values.count(3)

print(count)

実行結果

2


全要素数取得

タプルに含まれているすべての要素数を数えたい場合には、len()関数を使用します。

tuple_values = (1, 2, 3, 1, 2, 3)

count = len(tuple_values)

print(count)

実行結果

6


タプル展開

タプルは、1つの変数として定義することもできますが、複数の変数に展開する事もできます。

(x, y) = (1, 2)

print(x, y)

tuple_values = (1, 2)

(x, y) = tuple_values

print(x, y)

実行結果

1 2
1 2


連結

複数のタプルを"+"演算子によって連結することができます。
2つ以上のタプルを"+"演算子で接続すると、連結された新しいタプルが返されます。

tuple1 = (1, 2)
tuple2 = (3, 4)
tuple3 = tuple1 + tuple2
print(tuple3)

実行結果

(1, 2, 3, 4)


参考文献

Python 公式リファレンス

https://docs.python.org/ja/3.7/index.html

Python-izm

https://www.python-izm.com/

ゲームを作りながら楽しく学べるPythonプログラミング

エキスパートPythonプログラミング

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)

エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)