タプル型の基本
タプルは基本的に以下のように ( ) で囲んで , を付けるか、
()で囲まず数値だけを入力した後に , を付けるとタプル型になります。
a = (1, 2, 3, 4, 5, 4, 3, 2, 1) a = 1,
しかし、a = (1) のように ( ) で囲っても , が付いていないとint型となりますので注意が必要です。
>>> type(a) <class 'tuple'> >>> a = (1) >>> type(a) <class 'int'>
タプル型では a[0] = 10 のように 新しい値を割り当てることはサポートしていないため以下のようにエラーとなります。
>>> a = (1, 2, 3, 4, 5, 4, 3, 2, 1) >>> a (1, 2, 3, 4, 5, 4, 3, 2, 1) >>> a[0] = 10 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>>
しかしタプルの中にリストを入れることはできるので
タプル内にリストとリストを繋げば可能となります。
以下のサンプルは b[0][0]に 10を代入 b[1][0]に40を代入をしています。
>>> b = ([1, 2, 3,],[4, 5, 6]) >>> b[0][0] 1 >>> b[0][0] = 10 >>> b ([10, 2, 3], [4, 5, 6]) >>> type(b) <class 'tuple'> >>> >>> b[1][0] 4 >>> b[1][0] = 40 >>> b ([10, 2, 3], [40, 5, 6]) >>>
また、インデックスの値の出力はできますし、スライスもできます。
>>> a = (1, 2, 3, 4, 5, 4, 3, 2, 1) >>> a[0] 1 >>> a[2:6] (3, 4, 5, 4)
タプルのメゾット
タプルのメゾットは2つだけ・・ 一覧で表示しなくてよかったですね(笑)
| count(self, value, /) | Return number of occurrences of value. | | index(self, value, start=0, stop=9223372036854775807, /) | Return first index of value. | | Raises ValueError if the value is not present. |
count
値の出現回数を返します。
>>> a = (1, 2, 3, 4, 5, 4, 3, 2, 1) >>> a.count(1) 2 >>>
index
値の最初のインデックスを返します。
>>> a = (1, 2, 3, 4, 5, 4, 3, 2, 1) >>> a.index(2) 1 >>> a.index(2,2) 7 >>>
タプルのアンパッキング
タプルは複数の変数を一度に展開することができます。
tuple_1の変数に100と200を入れると100と200の値が代入されます。
tuple_1 = (100, 200) print(tuple_1)
すると以下のように100と200が代入されます。ここまでは通常通りですね。
(100, 200)
その後 aとbにtuple_1に格納された値を代入してみます。
a, b = tuple_1 print(a, b)
すると以下のように値が展開されます。
100 200
この機能を利用して、簡単に、数値の入れ替えができます。
c = 100 d = 200 c, d = d, c print(c, d)
結果は以下のようにcとdの値が入れ替わっているのがわかると思います。
200 100
タプルのまとめ
タプルのメゾットを見て解るように
・書き換えられたくない値を保管しておくと覚えておく(どうしても書き換えたければタプルの中にリストを作れる!)
・読み込み専用(参照渡し)
・tupleにlistを入れられる
コメント