PR

Python タプルの基本・メゾット・アンパッキング

スポンサーリンク
この記事は約4分で読めます。

タプル型の基本

 

タプルは基本的に以下のように  ( ) で囲んで , を付けるか、

()で囲まず数値だけを入力した後に   ,  を付けるとタプル型になります。

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を入れられる

 

コメント

タイトルとURLをコピーしました