Pythonでタプルの要素値を更新する方法!list()とtuple()を使った手順を解説
Pythonのタプルはイミュータブル(変更不可)なオブジェクト
Pythonのタプルはイミュータブル(不変)なオブジェクトです。そのため、タプルの要素を直接書き換えようとする操作は許可されておらず、エラーが発生します。
ただし、いくつかの手順を踏むことで、実質的にタプルの要素値を更新することが可能です。ここでは最も一般的な回避策(ワークアラウンド)を紹介します。
タプルをリストに変換してから更新する手順
まず、組み込み関数 list() を使ってタプルをリストに変換します。リストはミュータブル(変更可能)なオブジェクトなので、特定のインデックスの要素に対して新しい値を代入することで、自由に内容を更新できます。
次に、もう一つの組み込み関数 tuple() を使って、更新済みのリストを再びタプルへと変換し直します。
>>> T1=(10,50,20,9,40,25,60,30,1,56) >>> L1=list(T1) >>> L1[5]=100 >>> T1=tuple(L1) >>> T1 (10, 50, 20, 9, 40, 100, 60, 30, 1, 56)
上記の例では、元のタプルのインデックス5にある要素「25」が「100」に変更されていることが確認できます。
注意点
頻繁に要素の追加・削除・更新を行うデータを扱う場合は、最初からタプルではなくリストを使用する方が効率的です。タプルは「変更されない固定データ」を扱うのに適したデータ構造であるため、用途に応じて使い分けましょう。
-
Pythonでタプルのリストを反復処理する方法
タプルのリストを反復処理する最も簡単な方法は、2つのネストされたforループ(二重ループ)を使用することです。外側のループがリストから各タプルを1つずつ取り出し、内側のループがそのタプルに含まれる各要素を順番に走査します。内側のprint()関数では引数にend= を指定することで、改行せずにタプル内のすべての要素を1行に出力できます。さらに、外側のループ内にあるもう1つのprint()が、各タプルの出力後に改行を挿入します。サンプルコードL=[(1,2,3), (4,5,6), (7,8,9,10)] for x in L: for y in x: print(y,
-
Pythonでタプルの中にタプルを入れる方法(ネストされたタプルの使い方)
Pythonにおけるタプルは、丸括弧 () で囲まれた、順序を持つオブジェクトのコレクションとして定義されます。タプルの要素には任意のPythonオブジェクトを格納できるため、タプル自体を別のタプルの要素として含めることも可能です。これを「ネストされたタプル」と呼びます。タプルの中にタプルを定義する以下の例では、タプル t1 の中に、別のタプル (4, 5, 6) を要素として含めています。>>> t1 = (1, (4, 5, 6), 2, 3) >>> t1 (1, (4, 5, 6), 2, 3)インデックスで内側のタプルを取り出すこの例では、t1 の