【Python独学】タプルで使えるメソッド
前回まで、3記事に渡ってタプルの基本をみていきました。
今回はタプルで使うことが出来るメソッドについて紹介します。
タプルのメソッド
さて、タプルのメソッドと銘打ったものの、タプルにはメソッドがほとんど用意されていません。
以前お伝えしたとおり、タプルはイミュータブル、つまり要素の「変更/追加/削除」などを行うことができません。
リストの場合は、リストに要素を追加するappendメソッドや要素を削除するremoveメソッドなど、
多くのメソッドがが用意されているのですが、タプルには当然それらがありません。
なので、タプルで使えるメソッドとしては、例えば以下の2つなどが挙げられます。
・countメソッド
上記の2つのメソッドはタプル専用のメソッドではなく、リストやタプル、文字列といったシーケンス型と呼ばれるデータ型のためのメソッドです。
シーケンス型とは、リストやタプルなどの複数の値をまとめて扱うためのデータ型です。それらを総称してシーケンス型と呼ぶと思っていただければ今のところは大丈夫です。
それでは、上記のメソッドについて見ていきましょう。
indexメソッド
indexメソッドは、シーケンスに対して指定した値が該当するインデックス番号を返すメソッドです。
では実際に例を見てみましょう。
name = ("cinnabar", "bort", "morganite", "rutile", "jade", "euclase") print(type(name.index("jade")))
4
1行目で定義したタプルに対して、その中の要素である”jade”のインデックス番号を取得することができます。
今回、”jade”のインデックス番号は4なので、メソッドの戻り値として4という値が返ってきました。
同じ値がシーケンス内に複数存在する場合は、最初の要素のインデックス番号を返します。
以下のようにtype関数を使うと分かる通り、indexメソッドから返る値はint型です。
type関数は、引数として与えられたオブジェクトのデータ型を調べることができる関数です。
name = ("cinnabar", "bort", "morganite", "rutile", "jade", "euclase") result = name.index("jade") print(type(result))
<class ‘int’>
ですので、例えば以下のようにindexメソッドから返る結果を文字列と結合して利用する場合は、
以前の記事で紹介した型変換を行う必要があります。
name = ("cinnabar", "bort", "morganite", "rutile", "jade", "euclase") result = name.index("jade") print("jadeのインデックス番号は " + str(result) + " です")
jadeのインデックス番号は 4 です
countメソッド
countメソッドは、リストやタプルなどに含まれる特定の要素を数えるメソッドです。
実際に例を見てみましょう。
fruits = ("banana", "orange", "apple", "banana", "apple", "apple") print(fruits.count("orange")) print(fruits.count("banana")) print(fruits.count("apple")) print(fruits.count("peach"))
1
2
3
0
countメソッドでは、1番目に与えた引数で指定した値が要素としていくつ含まれているか確認することができます。
1つも含まれていない場合、戻り値として0が返ります。
まとめ
- タプルでは、シーケンス型に共通するメソッドを用いることが出来る。
- indexメソッドは、指定した要素のインデックス番号を確認することが出来る。
- countメソッドは、指定した要素がいくつ含まれているか、確認することが出来る。
確認問題
1.以下のタプルにて、各要素のインデックス番号を取得してみましょう。
week = (“月”, “火”, “水”, “木”, “金”, “土”, “日”)
2.以下のタプルにて、100の含まれる個数を調べてみましょう。
score = (33, 4, 10, 100, 25, 100, 85, 47, 92, 100, 100, 1000)