初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

タプル

タプルについて

今回は、タプルについて書いていきます。タプルは、リストとほとんど同じです。しかし、リストとは異なりイミュータブルです。そのため、あるタプルを一度定義した後にそのタプルについて要素の追加や削除、変更を加えることはできません。

タプルの作成

タプルはカンマにより作成することが可能です。個々の要素をカンマで区切ると、それがタプルになります。最後の要素の後のカンマは省略することができます。Pythonは、表示するときに括弧"()"を補って表示しますがタプルの定義に括弧が必要なわけではありません。見易さのために括弧をつけるのは問題ありません。また、tuple()関数を使うことにより作成することができます。tuple()関数は、他のデータ型をタプルに変更することができます。

>>> sample_tuple1 = ()
>>> sample_tuple1
()
>>> sample_tuple2 = 1, 2, 3,
>>> sample_tuple2
(1, 2, 3)
>>> tuple([1, 2, 3])
(1, 2, 3)
>>> sample_tuple3 = (1, 'two', "three",)
>>> sample_tuple3 
(1, 'two', 'three')
>>> sample_tuple4 = 1, 2, 3
>>> sample_tuple4
(1, 2, 3)

タプルの使い道

タプルはリストと違いイミュータブルであるために使い道が限定されます。よく使われる手法としては、定数リスト(値が変わらないリストのこと)の作成やタプルアンパックなどです。タプルアンパックとは、一度に複数の変数に代入することです。タプルを用いることにより、退避変数を使うことなしに要素の交換をすることもできます。また、関数の引数はタプルとして渡されています。

>>> tuple_unpack = ('one', 'two', 'three')
>>> tuple_unpack = (1, 2, 3)
>>> one, two, three = tuple_unpack
>>> one
1
>>> two
2
>>> three
3
>>> left = "right"
>>> right = "left"
>>> left, right = right, left
>>> left
'left'
>>> right
'right'

タプルのメソッド

タプルにはメソッドがほとんどありません。当然、リストにあったappend()、insert()、remove()などのメソッドはありません。count()、index()メソッドはあります。

  • tuple.count(value): tuple内のvalueと等しい要素の数を返す
  • tuple.index(value): tuple内のvalueと等しい最初の要素のオフセットを返す
>>> tuple_count = (1, 1, 1, 2, 2, 3, 3, 3, 3)
>>> tuple_count.count(1)
3
>>> tuple_count.count(3)
4
>>> tuple_count.index(1)
0
>>> tuple_count.index(2)
3