タプルはリスト配列と似ていますが、大きな違いは定義した後に要素を追加、変更、削除ができません。
ここでは、タプルを操作するいくつかの方法を見てみましょう。
タプルは次のように初期化します。
タプル作成の書式 |
---|
タプル名 = (データ,) タプル名 = (データ1, データ2, …) タプル名 = データ1, データ2, … |
例:
item = ('時計',)
dinner = ('中華', '和食', '洋食')
fruits = 'りんご', 'もも', 'ばなな'
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | tupletest1.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
('りんご', 'もも', 'ばなな')
('中華', '和食', '洋食')
('時計',)
○ 解説
2行目では、値をカンマで区切ってタプルを指定しています。3行目では、「()」を使ってタプルを指定しています。4行目では、1つの要素を持つタプルを指定しています。一つの要素を指定する場合でも、カンマで区切って指定します。もし、カンマで区切らず、「item = ('時計')」のように指定すると、「item = '時計'」と指定するのと同じような意味になり、タプルではなく変数となります。
タプルは変更ができません。ここでは、そのことを確認してみましょう。
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | tupletest2.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
もも
Traceback (most recent call last):
File "C:\work\Chapter2\Chapter2\tupletest2.py", line 8, in <module>
fruits[1] = 'めろん'
TypeError: 'tuple' object does not support item assignment
○ 解説
5行目では、タプルの1番目の要素を表示しています。タプルの要素のアクセスは、リスト配列と同じように指定します。
7行目では、1番目の要素に代入をしています。実行結果を見ると、その行でエラーが発生していることを確認できます。タプルはイミュータブル(変更できない)なオブジェクトなので、代入してデータを変更することはできません。
タプルの内容は変更できませんが、リストに変換すれば要素を変更することができます。リスト配列に変換するには「list」関数を使います。
リスト配列に変換の書式 |
---|
list (タプル) |
例:
fruits_list = list(fruits)
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | convertlisttest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
('りんご', 'もも', 'ばなな')
['りんご', 'もも', 'ばなな']
○ 解説
5行目では、タプルfruitsを表示しています。「()」で囲まれた状態で表示されるので、タプルであることが分かります。8行目では、タプルfruitsを「list」関数を指定してリスト配列に変換しています。11行目で、変換した内容を表示していますが、「[]」で囲まれた状態で表示され、リスト配列になっていることが分かります。リスト配列なので、要素を変更することができます。
リスト配列をタプルに変換するには「tuple」関数を使います。
タプルに変換の書式 |
---|
tuple(リスト配列) |
例:
fruits_tuple = tuple(fruits)
○ ファイル
Chapter2プロジェクトに次のファイルを追加してください。
ファイルの種類 | 空のPythonファイル |
---|---|
ファイル名 | converttupletest.py |
○ プログラム
次のようにプログラムを入力してください。
○ 実行結果
['りんご', 'みかん']
('りんご', 'みかん')
○ 解説
5行目では、リスト配列fruitsを表示しています。「[]」で囲まれた状態で表示されるので、リスト配列であることが分かります。8行目では、リスト配列fruitsを「tuple」関数を指定してタプルに変換しています。11行目で、変換した内容を表示していますが、「()」で囲まれた状態で表示され、タプルになっていることが分かります。タプルなので、要素を変更できません。