目標
(pythonの)「タプル」のもつ「index()」「count()」の利用方法について理解する。
(pythonの)「タプル」での「del文」の利用方法について理解する。
(pythonの)「リスト」と「タプル」(再掲載)
(pythonの)「リスト」と「タプル」の共通点
(pythonの)「リスト」と「タプル」には次の点で共通しています。
- イテラブルオブジェクトである。
- インデックス式・スライス式を利用した要素の取り出しが可能。
- 「len()関数」「max()関数」「min()関数」「sum()関数」が利用可能。
- 「indexメソッド」「countメソッド」を持つ。
- 「+演算子」を利用しての連結、「*演算子」を利用しての繰り返しが可能。
- 「in演算子(帰属性判定演算子)」を利用して要素の確認が可能。
(pythonの)「リスト」と「タプル」の相違点
(pythonの)「リスト」と「タプル」には次の点で違いがあります。
内容 | リスト | タプル |
要素の変更 | 〇 ミュータブル | × イミュータブル |
インデックス式 | 値の取り出し・値の変更 | 値の取り出しのみ |
スライス式 | 値の取り出し・値の変更 | 値の取り出しのみ |
appendメソッド | 〇 | × |
extendメソッド | 〇 | × |
insertメソッド | 〇 | × |
removeメソッド | 〇 | × |
popメソッド | 〇 | × |
clearメソッド | 〇 | × |
reverseメソッド | 〇 | × |
copyメソッド | 〇 | × |
内包表記 | 〇 | × |
del文 | 〇 (要素の削除まで可能) | △ (オブジェクトの解放のみ) |
辞書のキーとして扱える | × | 〇 |
累算演算子での連結 | インプレース | インプレースでない |
累算演算子での繰り返し | インプレース | インプレースでない |
(pythonの)「タプル」の操作(メソッド)
メソッド:メソッドはクラスやオブジェクトを操作するために、その内部で定義した関数のことです。(他の言語ではメンバー関数と呼ばれたりします。)
優しく言い換えると、「オブジェクト専用で利用できる関数」といえます。(pythonの)「タプル」でもタプルを操作するためのメソッドが、しっかりと準備されています。
「タプル」は「リスト」と同様にオブジェクトが作成されると、要素に値が設定される以外にも、必要な処理(メソッド)が準備されます。
上のキャプチャの場合、リストの名前を利用して「tuple_num.index(2)」のようにメソッドを呼び出します。
indexメソッド
list.index(x[, start[, end]])
リスト中で x と等しい値を持つ最初の要素の位置をゼロから始まる添字で返します。 該当する要素がなければ ValueError が送出されます。任意の引数である start と end はスライス記法として解釈され、リストの探索範囲を指定できます。返される添字は、start 引数からの相対位置ではなく、リスト全体の先頭からの位置になります。
https://docs.python.org/ja/3.11/tutorial/datastructures.html
indexメソッドを利用すると引数に指定した値が存在するかを確認できます。値が存在する場合は、該当するインデックス番号が返され、存在しなければValueErrorとなります。
次のプログラムでは値「3」のインデックス番号が返されます。要素は先頭から確認されるのでリストな中に同じ値が複数存在する場合は、インデックス番号の若い数値が返されます。
tuple_num1 = ( 6, 3, 10, 8, 7, 5, 3, 9 )
print(tuple_num1.index(3))
実行結果
今回は値「3」はタプル内に2カ所存在しています。このうちインデックス番号の小さい方「1」が返されるようになっています。
indexメソッドでは確認の範囲を指定することもできます。
index(検索する値,検索の開始するインデックス番号,検索を終了するインデックス番号+1)
次のプログラムではインデックス番号「2」から「6」までの範囲を指定しています。
tuple_num1 = ( 6, 3, 10, 8, 7, 5, 3, 9 )
print(tuple_num1.index(3, 2, 7))
実行結果
end の部分は省略して start だけ指定することも可能です。
countメソッド
list.count(x)
https://docs.python.org/ja/3.11/tutorial/datastructures.html
リストでの x の出現回数を返します。
tuple_num1 = ( 6, 3, 10, 8, 7, 5, 3, 9 )
print(tuple_num1.count(3))
print(tuple_num1.count(4))
実行結果
del文
「del文」はpythonの単純文で「変数」と「リテラル」の結びつきを解消させることのできる文です。また、「del文」はミュータブルなオブジェクトであるリストの場合、要素を個別に指定することも可能ですが、イミュータブルなオブジェクトであるタプルでは変数とタプルオブジェクトの紐づけを削除するときにのみ利用できます。
tuple_num = ( 6, 3, 10, 4, 5, [8, 9, 7], 11 )
print(tuple_num)
# タプル内のリストの要素が解放されます。
del tuple_num[5][0]
print(tuple_num)
実行結果
tuple_num = ( 6, 3, 10, 4, 5, [8, 9, 7], 11 )
print(tuple_num)
# 変数が削除されます。
del tuple_num
# 変数がないためエラーとなります。
print(tuple_num)
実行結果(削除が無事完了し、変数名からタプルの呼び出しができなくなっています。)
tuple_num = ( 6, 3, 10, 4, 5, [8, 9, 7], 11 )
print(tuple_num)
# インデックス「2」の値(tuple_numの「10」)は削除できません。
del tuple_num[ 2 ]
print(tuple_num)
実行結果(イミュータブルのタプルでは各要素を削除できません。)
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。