【Python】レッスン4-09:タプルの基本を理解しよう

ながみえ
【Python学習記事のアイキャッチ画像】Lesson4-9 タプルの基本を理解しよう

一つ前のLessonでは4種類のデータ構造について学習しました。

今回はタプルの基本について見ていきましょう。

Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数とスコープ編

Lesson4:データ構造編
・Lesson4-1:リストの定義と要素の追加を理解しよう
・Lesson4-2:リストの要素を削除しよう
・Lesson4-3:リストの情報を調べよう
・Lesson4-4:リストの集計・並べ替えを理解しよう
・Lesson4-5:リストのスライスを理解しよう
・Lesson4-6:リストのループ処理を理解しよう
・Lesson4-7:リストの内包表記を理解しよう
・Lesson4-8:リスト・タプル・辞書・集合の概要と違いを理解しよう
・Lesson4-9:タプルの基本を理解しよう ◁今回はココ
・Lesson4-10:タプルのアンパックを理解しよう
・Lesson4-11:辞書の基本を理解しよう
・Lesson4-12:辞書のループ処理を理解しよう
・Lesson4-13:辞書の内包表記を使ってリストから辞書を作ろう
・Lesson4-13:集合(セット)の基本を理解しよう
・練習問題4-1:宝探しゲームを作ろう
・練習問題4-2:ナインゲームを作ろう 
・練習問題4-3:マルバツゲームを作ろう
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道5選(実務or副業)

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson4-8 データ構造の違いを理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson4-10 タプルのアンパックとネストを理解しよう

タプルの基本をおさえる|定義・違い・相互変換をまとめて理解

タプル(tuple)( ) とカンマで要素を並べる変更不可(不変)なデータ構造です。

要素の並びを安全に固定でき、アンパック代入や多値の返却、辞書のキーや集合の要素など“変更されないこと”が求められる場面で威力を発揮します。

この知識を身につけると「リストかタプルか」を目的で使い分けられ、意図しない更新バグの防止やパフォーマンス・可読性の向上にもつながります。

読み終える頃には、タプルを“いつ・なぜ使うか”を自信を持って判断できるはずです。まずは定義のしかたと基本の使い方から見ていきましょう。

【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

タプル定義の基本|丸括弧とカンマで定義

タプルは 丸括弧 () を使って定義します。複数の要素をカンマで区切りながら括弧内に列挙するだけです。

以下はタプルの定義例です。

# タプルの定義
fruits = ("apple", "banana", "cherry")
print(fruits)  # ('apple', 'banana', 'cherry')

要素が1つだけのタプルを定義する場合でも、カンマを付ける必要があります。

# 要素が1つのタプル
single_element_tuple = ("apple",)
print(single_element_tuple)  # ('apple',)

タプルとリストの共通点と違い

タプルとリストの主な違いは、前述した通りタプルがイミュータブルである点です。

リストはミュータブル(変更可能)なため、要素の追加や削除が自由に行えますが、タプルはそうではありません。

このためプログラム内で変更する必要のないデータや、意図せずにデータが変更されるのを防ぎたい場合にタプルが使われます。

データ構造要素の変更要素の追加・削除定義方法
リストミュータブル[]
タプルイミュータブル不可()

また、タプルで使える基本的な操作はリストとほぼ同様です。

例えばlen() 関数やcountメソッド、indexメソッドでタプルの情報を取得したり、in 演算子で要素が存在するかを確認したりすることができます。

これらについてはリストの解説で詳しく学んでいるため、ここでは詳細な説明を割愛します。

復習する場合は以下の記事を参照してください↓↓

あわせて読みたい
【Python】レッスン4-03:リストの情報を調べよう
【Python】レッスン4-03:リストの情報を調べよう

文字列、リスト、タプルの相互変換方法|splitとtupleとjoin

文字列とリストやタプルは、特定の関数やメソッドを使用して相互に変換することができます。

それぞれの役割と使い方を以下で詳しく説明します。

split()メソッドの使い方|文字列のリスト化

split()メソッド は、文字列を指定した区切り文字で分割してリストに変換するメソッドです。

例えば、カンマ区切りの文字列をリストに変換する場合に使います。

# 文字列をリストに分割
fruits_str = "apple, banana, cherry" # 3つの単語を含んだ一つの文字列
fruits_list = fruits_str.split(", ") # split()メソッドで、fruits_strを「, 」で区切ってリスト化
print(fruits_list)  # ['apple', 'banana', 'cherry']

上記の例では、文字列 "apple, banana, cherry" をカンマとスペースで分割し、リスト ['apple', 'banana', 'cherry'] に変換しています。

tuple()関数の使い方|文字列やリストのタプル化

tuple()関数 は文字列やリストをタプルに変換する組み込み関数です。

文字列なら文字ごとに、リストなら要素ごとにタプルの要素として格納します。

# 文字列やリストをタプルに変換
apple_str = "apple"						# 5つの文字を含んだ文字列
fruits_str = "apple, banana, cherry"	# 3つの単語を含んだ一つの文字列

apple_tuple = tuple(apple_str)
fruits_tuple = tuple(fruits_str.split(", ")) # split()メソッドでリスト化し、それをtuple()関数でタプル化

print(apple_tuple)	# ('a', 'p', 'p', 'l', 'e',)
print(fruits_tuple)	# ('apple', 'banana', 'cherry')

この例では、文字列 "apple" を5の文字で分割してタプル化し、またリスト ['apple', 'banana', 'cherry'] 作成後にそれをタプル化しています。

join()メソッドの使い方|リストやタプルの文字列化

join()メソッド はリストやタプルの各要素を指定した文字で連結し、1つの文字列にするメソッドです。

例えば、リストやタプルの要素をカンマ区切りの文字列に変換したいときに便利です。

# タプルを文字列に変換
fruits_tuple = ("apple", "banana", "cherry")	# 3つの要素を含んだタプル
fruits_str = ", ".join(fruits_tuple)			# join()メソッドで、fruits_strを「, 」で連結して文字列化
print(fruits_str)	# 'apple, banana, cherry'

この例ではタプル ("apple", "banana", "cherry") の各要素をカンマとスペースで連結し、1つの文字列 'apple, banana, cherry' に変換しています。

まとめ|不変の並びを安全に扱い、目的でリストと使い分けよう

タプルは変更する必要のないデータを扱う場合に適したコレクション型です。

リストと似た操作ができ、要素数を調べたり、特定の要素が存在するか確認することも可能です。またsplitjoin によって文字列との相互変換もできます。

タプルを正しく理解して適切な場面で使うことで、Pythonプログラムの安定性や安全性を向上させることができます。

Q
サイト改善アンケート|ご意見をお聞かせください(1分で終わります)

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。

1分だけ、ご協力いただけますと幸いです。

【Python】サイト改善アンケート
1.このサイトをどのように活用していますか?また、今後どのように活用したいですか?
5.気になっているサービス・商品があれば教えてください。
(複数選択可)
※ 特定の記事に関する内容の場合は、記事番号(Python Lesson〇-〇)をご記入願います。 また、ご質問はここではなく問い合わせフォームからお願いします。

練習問題:タプルを使ってみよう

この記事で学習した「タプル」を復習する練習問題に挑戦しましょう。

【Python】勉強猫がノートパソコンに向かい、練習問題に挑戦する様子。記事内の休憩用イラスト

問題|国名を使ったタプルと文字列の変換プログラム

タプルを使って国名を扱うプログラムを作成しましょう。

最初にいくつかの国名を含むタプルを定義します。その後、タプルをカンマで区切った文字列に変換し、再びタプルに戻す操作を行ってください。

以下の要件に従ってコードを完成させてください。

  • 3つの国名を含むタプル countries を定義すること。
  • タプルを join メソッドを使ってカンマ区切りの文字列に変換し、それを表示すること。
  • 変換した文字列を split メソッドを使ってリストに分割し、それを表示すること。
  • 分割したリストを tuple 関数を使って再びタプルに変換し、それを表示すること。

ただし、以下のような実行結果となるコードを書くこと。

タプルの内容: ('Japan', 'USA', 'France')
タプルを文字列に変換: Japan, USA, France
文字列をリストに分割: ['Japan', 'USA', 'France']
リストをタプルに戻す: ('Japan', 'USA', 'France')

解答例|国名タプルの相互変換プログラム

例えば以下のようなプログラムが考えられます。

Q
正解コード
countries = ("Japan", "USA", "France")

# タプルの内容を表示
print("タプルの内容:", countries)

# joinメソッドを使って、タプルの要素をカンマ区切りの文字列に変換
countries_str = ", ".join(countries)
print("タプルを文字列に変換:", countries_str)

# splitメソッドを使って、文字列を再びリストに変換
countries_list = countries_str.split(", ")
print("文字列をリストに分割:", countries_list)

# 文字列をタプルに再変換
countries_tuple_again = tuple(countries_list)
print("リストをタプルに戻す:", countries_tuple_again)
もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいPython学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson4-8 データ構造の違いを理解しよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson4-10 タプルのアンパックとネストを理解しよう

タプルの基本の疑問解消|FAQと用語のまとめ

初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。

理解を深めたいときや、ふと疑問に感じたときに役立ててください。

FAQ|タプルの基本に関するよくある質問

Q
Q1. タプルを使うメリットは何ですか?

タプルはイミュータブル(変更不可)なため、安全性とパフォーマンスに優れています。変更が不要な固定データを扱うときに適しています。

Q
Q2. split()とjoin()の違いは何ですか?

split()は文字列を指定した区切りで分割しリストに変換、join()はリストなどの要素を文字列に連結します。タプルとは直接関係ありませんが、型変換を組み合わせて連携可能です。

Q
Q3. タプル内に文字列がある場合、joinで連結できますか?

はい、タプルの要素がすべて文字列であれば、join()を使って1つの文字列に結合できます。ただし要素に数値があるとエラーになるため、型変換が必要です。

Python用語集|タプルの基本に関する用語一覧

今回の記事で出てきた用語・関数などを一覧で紹介します。

このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。

Python用語定義・使い方の概要解説記事へのリンク
リスト順序付きで複数の要素を保持できるデータ構造。変更可能なミュータブル型Lesson4-1
タプルリストに似たシーケンス型で、要素の変更ができないイミュータブル型本記事
ミュータブル作成後に内容を変更できるデータ型。リストや辞書などが該当本記事
イミュータブル作成後に内容を変更できないデータ型。数値型、文字列型、タプルなどが該当本記事
split() メソッド文字列を指定した区切り文字で分割し、リストとして返すメソッド本記事
tuple() 関数他のイテラブル(リストなど)をタプルに変換する関数本記事
join() メソッドリストなどの複数の文字列を、指定した区切り文字で連結して1つの文字列にするメソッド本記事
記事URLをコピーしました