タプル

 タプルはリスト配列と似ていますが、大きな違いは定義した後に要素を追加、変更、削除ができません。

 ここでは、タプルを操作するいくつかの方法を見てみましょう。

■ タプルの初期化

 タプルは次のように初期化します。

タプル作成の書式
タプル名 = (データ,)
タプル名 = (データ1, データ2, )
タプル名 = データ1, データ2,

例:
 item = ('時計',)
 dinner = ('中華', '和食', '洋食')
 fruits = 'りんご', 'もも', 'ばなな'

○ ファイル

 Chapter2プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 tupletest1.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #タプルを用意する
  2. fruits = 'りんご', 'もも', 'ばなな'
  3. dinner = ('中華', '和食', '洋食')
  4. item = ('時計',)
  5. #タプルの内容を表示する
  6. print(fruits)
  7. print(dinner)
  8. print(item)

○ 実行結果

('りんご', 'もも', 'ばなな')
('中華', '和食', '洋食')
('時計',)

○ 解説

 2行目では、値をカンマで区切ってタプルを指定しています。3行目では、「()」を使ってタプルを指定しています。4行目では、1つの要素を持つタプルを指定しています。一つの要素を指定する場合でも、カンマで区切って指定します。もし、カンマで区切らず、「item = ('時計')」のように指定すると、「item = '時計'」と指定するのと同じような意味になり、タプルではなく変数となります。


■ タプルの要素に代入(エラー)

 タプルは変更ができません。ここでは、そのことを確認してみましょう。

○ ファイル

 Chapter2プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 tupletest2.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #タプルを用意する
  2. fruits = 'りんご', 'もも', 'ばなな'
  3. #タプルの内容を表示する
  4. print(fruits[1])
  5. #タプルの要素を変更する
  6. fruits[1] = 'めろん'

○ 実行結果

もも
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

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #タプルを用意する
  2. fruits = 'りんご', 'もも', 'ばなな'
  3. #タプルの内容を表示する
  4. print(fruits)
  5. #タプルをリストに変換する
  6. fruits_list = list(fruits)
  7. #変換した内容を表示する
  8. print(fruits_list)

○ 実行結果

('りんご', 'もも', 'ばなな')
['りんご', 'もも', 'ばなな']

○ 解説

 5行目では、タプルfruitsを表示しています。「()」で囲まれた状態で表示されるので、タプルであることが分かります。8行目では、タプルfruitsを「list」関数を指定してリスト配列に変換しています。11行目で、変換した内容を表示していますが、「[]」で囲まれた状態で表示され、リスト配列になっていることが分かります。リスト配列なので、要素を変更することができます。


■ リスト配列をタプルに変換

 リスト配列をタプルに変換するには「tuple」関数を使います。

タプルに変換の書式
tuple(リスト配列)

例:
 fruits_tuple = tuple(fruits)

○ ファイル

 Chapter2プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 converttupletest.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #リスト配列を用意する
  2. fruits = ['りんご', 'みかん']
  3. #リストの内容を表示する
  4. print(fruits)
  5. #リストをタプルに変換する
  6. fruits_tuple = tuple(fruits)
  7. #変換した内容を表示する
  8. print(fruits_tuple)

○ 実行結果

['りんご', 'みかん']
('りんご', 'みかん')

○ 解説

 5行目では、リスト配列fruitsを表示しています。「[]」で囲まれた状態で表示されるので、リスト配列であることが分かります。8行目では、リスト配列fruitsを「tuple」関数を指定してタプルに変換しています。11行目で、変換した内容を表示していますが、「()」で囲まれた状態で表示され、タプルになっていることが分かります。タプルなので、要素を変更できません。

前へ   次へ