PR
更新:2024/09/16

Pythonのタプル(tuple)の使い方・タプルの操作・例題について

はるか
はるか
タプルって、変更できないデータの集まり。リストとは違う。
ふゅか
ふゅか
そうそう!一度作ったら、追加したり削除したりできないのがポイントよ。

1. タプルとは

Pythonのタプル (tuple) は、順序付けられた変更不可のデータの集合を表すデータ型です。リスト (list) に似ていますが、タプルは一度作成すると要素を追加、削除、変更することができません。

1.1. タプルの作成

タプルは丸括弧 () を使って作成します。複数の要素を持つタプルは、各要素をカンマ , で区切って定義します。

# 複数の要素を持つタプルの例
tuple1 = (1, 2, 3, 4, 5)
print(tuple1)  # (1, 2, 3, 4, 5)

# 要素が1つだけの場合もカンマをつける
tuple2 = (42,)
print(type(tuple2))  # (42,)

要素が1つのタプルを作成する際、カンマを付ける必要があります。カンマがないと、Pythonはタプルではなく単なる数値やオブジェクトとして認識します。

# カンマなしの単一要素
not_tuple = (42)
print(type(not_tuple))  # 42(タプルではない)

1.2. タプルの特徴

  • 順序性: タプル内の要素は順序を持っており、インデックスを使って要素にアクセスできます。
  • 変更不可(イミュータブル): タプルの要素を変更することはできません。一度作成したタプルの要素を追加、削除、変更することはできないため、タプルはリストに比べて安全です。
tuple3 = ('apple', 'banana', 'cherry')
# tuple3[1] = 'orange'  # エラー: タプルの要素は変更できません

仮に要素を変更しようとすると次のようになります。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [24], in ()
----> 1 tuple3[1] = 'orange'

TypeError: 'tuple' object does not support item assignment

要素を変更したい場合は変数を更新することで、要素を更新することができます。

tuple3 = ('apple', 'banana', 'cherry')
tuple3 = ('apple', 'orange', 'cherry') #banana -> orange
はるか
はるか
もし要素を変えたいなら、新しいタプルを作る。
ふゅか
ふゅか
タプルはそのままじゃ変更できないけど、新しいタプルを作り直せば問題なしよ!

2. タプルの操作

ふゅか
ふゅか
タプルはリストみたいにいろんな操作ができるのよ。たとえば、インデックスを使って要素にアクセスしたり、スライスで一部を取り出したり♪
はるか
はるか
ふむ、たとえばtuple4[2]で3番目の要素を取得できる。スライスだと、tuple4[1:3]で2番目から3番目まで。

タプルには、リストと同様に多くの操作が可能です。以下にいくつかの基本操作を示します。

2.1. インデックスによるアクセス

tuple4 = (10, 20, 30, 40)
print(tuple4[2])  # 30(インデックスは0から始まります)

2.2. スライス

print(tuple4[1:3])  # (20, 30) (1番目から2番目までの要素を取得)

2.3. 結合

tuple5 = (1, 2, 3)
tuple6 = (4, 5, 6)
tuple7 = tuple5 + tuple6
print(tuple7)  # (1, 2, 3, 4, 5, 6)

2.4. 要素のカウントと検索

  • count(): 指定した要素がタプル内に何回現れるかを返します。
  • index(): 指定した要素が最初に現れる位置(インデックス)を返します。
tuple8 = (1, 2, 3, 2, 4)
print(tuple8.count(2))  # 2 (要素2は2回現れます)
print(tuple8.index(3))  # 2 (要素3の最初のインデックスは2)

2.5. タプルのアンパック

タプルの要素を個別の変数に展開(アンパック)することができます。

tuple9 = ('red', 'green', 'blue')
color1, color2, color3 = tuple9
print(color1)  # red
print(color2)  # green
print(color3)  # blue

アンパックする際、変数の数はタプルの要素数と一致させる必要があります。また、*を使うことで残りの要素をリストにまとめることも可能です。

tuple10 = (10, 20, 30, 40)
a, *b = tuple10
print(a)  # 10
print(b)  # [20, 30, 40]

3. タプルの例題

3.1. 例題 1:要素の取得

次の my_tuple から、最初の要素と最後の要素を取得してください。
my_tuple = (10, 20, 30, 40, 50)

期待される出力:

(10, 50)

解答の手順:

  1. my_tuple[0] で最初の要素を取得します。
  2. my_tuple[-1] で最後の要素を取得します。
  3. 両方の要素を新しいタプルにまとめます。

解答:

my_tuple = (10, 20, 30, 40, 50)
result = (my_tuple[0], my_tuple[-1])
print(result)

3.2. 例題 2:要素の入れ替え

次の my_tuple の2番目と4番目の要素を入れ替えたタプルを作成してください。
my_tuple = (1, 2, 3, 4, 5)

期待される出力:

(1, 4, 3, 2, 5)

解答の手順:

  1. list() を使ってタプルをリストに変換します。
  2. リストの2番目と4番目の要素を入れ替えます。
  3. リストをタプルに戻します。

解答:

my_tuple = (1, 2, 3, 4, 5)
temp_list = list(my_tuple)
temp_list[1], temp_list[3] = temp_list[3], temp_list[1]
result = tuple(temp_list)
print(result)

3.3. 例題 3:タプルの結合

2つのタプル (1, 2)(3, 4) を結合して、新しいタプルを作成してください。

期待される出力:

(1, 2, 3, 4)

解答の手順:

  1. タプル同士を + 演算子で結合します。

解答:

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

3.4. 例題 4:要素が含まれているか確認

次のタプル my_tuple の要素の中に 3 が含まれているか確認してください。
my_tuple = (5, 8, 2, 9, 3)

期待される出力:

True

解答の手順:

  1. in 演算子を使って、タプルに 3 が含まれているか確認します。

解答:

my_tuple = (5, 8, 2, 9, 3)
result = 3 in my_tuple
print(result)


check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR