【保存版】Pythonのタプルを基本から実例付きで丁寧に解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年7月)

✔このような方におすすめの記事です

「Pythonでタプルってどう使うの?」
「タプルの作り方と活用方法を学びたい」
「Pythonのタプルを使った具体的なコードが見たい」

✔当記事を読むと得られる知識

  • Pythonのタプルの基本概念
  • タプルの作成と操作方法
  • Pythonでタプルを用いた実例

当記事では、Pythonのタプルの基礎から、その様々な使い方、具体的なコード例までを丁寧に説明しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Pythonとタプル概念の導入

こちらでは、Pythonとその中で使われるタプルというデータ型についてお伝えします。

Pythonとタプルの概念を理解することは、効果的にプログラムを作成するための重要なステップです。

  • Pythonの人気とその理由
  • タプルの特性の概略

Pythonの人気とその理由

Pythonはその直感的なシンタックスと多機能性から広く使われているプログラミング言語です。

その読みやすさは、プログラミング初学者にとって理解しやすい言語として人気があります。

その特徴が故に、さまざまな用途で活用されているのです。

  • データ分析
  • ウェブ開発
  • 自動化
  • AIの分野

タプルの特性の概略

タプルは、複数の要素をまとめて扱えるデータ型です。

タプルの重要な特性として、その要素は変更できない「不変性」があります。

これにより、プログラム内で安定したデータを保持できるのです。

Pythoには、複数の要素をまとめるデータ型として「リスト」もあります。

リストの要素は、タプルのものとは違い、変えられます。

# タプルの作成
my_tuple = (1, 2, 3, 4, 5)

# タプルの要素へのアクセス
print(my_tuple[0])  # 出力: 1
print(my_tuple[2])  # 出力: 3

# タプルの要素は変更できない
my_tuple[0] = 10  # エラーが発生します

# タプルの長さを取得
print(len(my_tuple))  # 出力: 5

# タプルの要素をループ処理
for item in my_tuple:
    print(item)

# タプル同士の結合
new_tuple = my_tuple + (6, 7, 8)
print(new_tuple)  # 出力: (1, 2, 3, 4, 5, 6, 7, 8)

Pythonの基本概念:データ型

こちらでは、Pythonにおけるデータ型について解説します。

データ型を理解することは、プログラムの動作やパフォーマンスに大きな影響を与えるため、非常に重要です。

  • 主要なデータ型の解説
  • データ型がプログラムに及ぼす影響

主要なデータ型の解説

Pythonにはいくつかの主要なデータ型があります。

以下がその一部です。

データ型説明
int整数を表すデータ型age = 25
float浮動小数点数を表すデータ型height = 1.75
str文字列を表すデータ型name = “Alice”
bool真偽値を表すデータ型is_valid = True
list複数の要素を格納できる可変長のデータ型numbers = [1, 2, 3]
tuple複数の要素を格納できる不変のデータ型coordinates = (10, 20)

それぞれ異なる特性や使い方を持っており、データの表現や操作に使用されます。

データ型がプログラムに及ぼす影響

データ型はプログラムの動作に直接的な影響を与えます。

  • 同じ数字でも、整数型と浮動小数点数型では、その演算結果やメモリ使用量が異なる
  • リスト型やタプル型では、要素の追加や削除、順序の変更などの制約が異なる

データ型の選択は、プログラムの性能やメモリ使用量、処理速度に直結する重要な要素です。

適切なデータ型を選択することで、効率的でスケーラブルなプログラムを開発できます。

タプル入門

こちらでは、タプルの定義と基本的な操作について詳しく説明します。

タプルを使いこなすために必要な知識と技能を身につけられるでしょう。

  • タプルの詳細な定義と特徴
  • タプルの成形と基本操作

タプルの詳細な定義と特徴

タプルは、複数の要素をひとつにまとめるためのデータ型です。

タプルの要素は順序を持ち、0から始まるインデックスでアクセスできます。

一度タプルが作成されると、その要素は変更できません。

この不変性は、プログラム内で一定の値を保持する必要がある場合に非常に役立ちます。

# タプルの作成
my_tuple = (1, 2, 3, 4, 5)

# タプルの要素へのアクセス
print(my_tuple[0])  # 出力: 1
print(my_tuple[2])  # 出力: 3

# タプルの要素は変更できない
my_tuple[0] = 10  # エラーが発生します

# タプルの長さを取得
print(len(my_tuple))  # 出力: 5

# タプルの要素をループ処理
for item in my_tuple:
    print(item)

# タプル同士の結合
new_tuple = my_tuple + (6, 7, 8)
print(new_tuple)  # 出力: (1, 2, 3, 4, 5, 6, 7, 8)

タプルの成形と基本操作

タプルはカンマで区切られた値の列を丸括弧()で囲むことで作成します。

my_tuple = (1, 2, 3)

値へのアクセスはブラケット[]を用いてインデックスを指定します。

my_tuple[0]

タプルの最初の要素1を返します。

タプルの特性と利用法

こちらでは、タプルの特性とその具体的な使用方法について詳しく見ていきましょう。

これらの知識を使って、より効果的なプログラムを作成できます。

  • タプルの不変性とその意味
  • タプル要素の参照方法
  • 比較演算子とタプル

タプルの不変性とその意味

タプルの最も重要な特性はその「不変性」です。

一度定義すると変更できないという特性。

これは、一部の要素を変更することなく複数の値を安全に格納する場面や、辞書型のキーとして使用する場面で重要な役割を果たします。

# タプルの作成
my_tuple = (1, 2, 3)

# タプルの要素へのアクセス
print(my_tuple[0])  # 出力: 1

# タプルの要素は変更できない
my_tuple[0] = 10  # エラーが発生します

# タプルの要素を変更する代わりに、新しいタプルを作成する
new_tuple = (10, 2, 3)

# タプルの比較
print(my_tuple == new_tuple)  # 出力: False

タプル要素の参照方法

タプルの要素にアクセスするには、ブラケット記法を用いてインデックスを指定します。

my_truple[3]

インデックスは0から始まり、1つずつ増加します。

マイナスのインデックスを指定することで、タプルの末尾から要素にアクセスも可能。

my_tuple[-1]

タプルの最後の要素を返します。

比較演算子とタプル

タプルは比較演算子を使って2つのタプルを比較することができます。

比較は最初の要素から始まり、等しくない要素が見つかった時点で比較を終了します。

例えば、(1, 2, 3) < (1, 2, 4)Trueを返します。これは、3つ目の要素34より小さいからです。

タプルとリストの比較

こちらでは、タプルとリストの違いを見ていきます。

タプルとリストの特性を正しく理解することで、適切なデータ型を選択し、プログラムの効率性と可読性を高められるでしょう。

  • リストとタプルの相違点
  • タプルとリストの適切な使用場面

リストとタプルの相違点

リストとタプルの主な違いは、「変更可能性(ミュータビリティ)」です。

  • リストの要素は変更可能:新たな要素の追加や既存要素の削除ができる
  • タプル:一度作成された要素は変更できない

また、リストはブラケット[]で、タプルはパレンセス()で作成されるという文法上の違いもあります。

リストの例

# リストの作成
my_list = [1, 2, 3]

# リストの要素へのアクセス
print(my_list[0])  # 出力: 1

# リストの要素の変更
my_list[0] = 10

# リストの要素の追加
my_list.append(4)

# リストの要素の削除
del my_list[1]

# リストの長さ
print(len(my_list))  # 出力: 3

# リストのループ処理
for item in my_list:
    print(item)

リストについては、以下の記事で詳しく解説しています。

タプルの例

# タプルの作成
my_tuple = (1, 2, 3)

# タプルの要素へのアクセス
print(my_tuple[0])  # 出力: 1

# タプルの要素は変更できないため、エラーが発生する
my_tuple[0] = 10

# タプルの長さ
print(len(my_tuple))  # 出力: 3

# タプルのループ処理
for item in my_tuple:
    print(item)

タプルとリストの適切な使用場面

変更が必要な場合や、要素を動的に追加や削除したい場合は、リストを使用しましょう。

一方、関連する要素を一緒にグループ化し、その後変更したくない場合や、辞書のキーとして使用する場合はタプルを使用します。

これらはタプルの不変性を活かす典型的な使用例です。

tuple関数とその活用

こちらでは、tuple関数とその活用法について説明します。

この関数を使うことで、ほかのデータ型からタプルを作成できるのです。

  • tuple関数とは
  • タプルの要素取り出しのテクニック

tuple関数の説明

tuple関数はほかのデータ型をタプルに変換するために使用します。

tuple([1, 2, 3])

リスト[1,2,3]が、(1, 2, 3)というタプルへ変換されます。

tuple関数を活用し、一連の値があるデータ型をタプル型へ変換してください。

タプルの要素取り出しのテクニック

タプルから要素を取り出すには、さまざまな方法があります。

最も基本的な方法はインデックスを使用することですが、タプルのアンパックというテクニックも非常に便利です。

x, y, z = (1, 2, 3)

x, y, zの各変数にそれぞれ1, 2, 3が代入されます。

タプルの要素を一度に複数の変数に代入可能です。

タプルの実践的活用

こちらでは、実際のPythonプログラミングでのタプルの利用例を示します。

タプルの便利さと実用性をより深く理解しましょう。

  • Pythonでのタプルの主な使用事例
  • 実際のコードを用いたタプルの使用例

Pythonでのタプルの主な使用事例

Pythonでは、タプルはさまざまな場面で利用されます。

例えば、関数で複数の戻り値があるときにはタプルが使われます。

また、タプルの不変性から、辞書のキーとして利用されることもあります。

データが変更されることなく保持されるべき場合にもタプルは便利です。

複数の戻り値を持つ

def get_name_and_age():
    name = "Alice"
    age = 25
    return name, age

result = get_name_and_age()
name, age = result

print(name)  # 出力: "Alice"
print(age)  # 出力: 25

辞書のキーとしてタプルを使用する例

student_grades = {("Alice", "Math"): 90, ("Bob", "Science"): 85, ("Charlie", "English"): 95}

# 特定のキーに対応する値の取得
print(student_grades[("Alice", "Math")])  # 出力: 90

データの普遍性を必要とする

weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
print(weekdays)

# タプルの要素は変更できないため、以下の操作はエラーとなる
# weekdays[0] = "Sunday"

実際のコードを用いたタプルの使用例

以下に、関数から複数の値を返すためにタプルを使用する例を示します。

def get_name_and_age():
    return ("John Doe", 30)

name, age = get_name_and_age()
print(name)  # Outputs: John Doe
print(age)  # Outputs: 30

このように、タプルを用いて複数の値を一度に返すことができます。

チャレンジ: タプルを用いた練習問題

今まで学んだタプルの知識をテストするための練習問題を以下に示します。

  1. ('apple', 'banana', 'cherry') というタプルから ‘banana’ を取り出してみてください。
  2. ('John', 'Doe', 30) というタプルをアンパックして、それぞれの要素を別々の変数に代入してみてください。
  3. 与えられたリスト [1, 2, 3, 4, 5] をタプルに変換してみてください。

【解答1】タプルから 特定の要素を取り出す

fruits = ('apple', 'banana', 'cherry')
second_fruit = fruits[1]
print(second_fruit)  # 出力: 'banana'

【解答2】タプルをアンパック&各要素を別々の変数に代入

person = ('John', 'Doe', 30)
first_name, last_name, age = person
print(first_name)  # 出力: 'John'
print(last_name)  # 出力: 'Doe'
print(age)  # 出力: 30

【解答3】与えられたリストをタプルに変換

numbers = [1, 2, 3, 4, 5]
tuple_numbers = tuple(numbers)
print(tuple_numbers)  # 出力: (1, 2, 3, 4, 5)

まとめ

当記事では、Pythonのタプルについて、以下のようなことをお伝えしてきました。

  • Pythonの基本的なデータ型で、不変で順序付けられた一連の要素を含む
  • タプルは要素が変更できないため、データが安全に保持できる
  • タプルはインデックスでアクセスできる
  • タプルのアンパックにより複数の変数に一度に値を代入することが可能

Pythonのプログラムにおいて、タプルは不変性と効率性を提供します。

関数から複数の値を返す、辞書のキーとして使用する、不変のデータセットを保持するなど、タプルは多様な使用例があります。

タイトルとURLをコピーしました