Pythonのコンテナの一つにタプルがあります。タプルは要素の変更ができないデータとして扱われています。
ですが、どうしても変更したくなった場合はリストに変換してから、追加や削除を行いタプルに戻すことになります。
今回はその内容を詳しく見ていきます。
タプルとは?
定義
タプルとは順番にデータを格納する箱のことです。リストと似ていますが、変更できないという点で異なります。
タプルの要素を変更するにはリストに変換してから行います。(後述)
より正確には、「タプルはイミュータブルでイテラブルなシーケンス」と言われることがあります。
- イミュータブル:不変
- リストはミュータブル(可変)
- イテラブル:forループに使える
- 「for i in {イテラブル}」に使えるもののこと
- シーケンス:インデックスでデ要素を取得できるもの
- リストやタプルなどの要素には0から番号が割り振られている
インデックス
タプルは丸カッコの中に要素を書きます。それらの要素に0から番号が割り振られています。その番号をインデックスと言います。
インデックスを指定することで要素を呼び出すことができます。タプルの長さ以上のインデックスを渡すとエラーになります。
1 2 3 4 5 6 7 |
>>> word = ('a', 'b', 'c', 'e', 'x') >>> word[0] 'a' >>> word[1] 'b' >>> word[5] IndexError: tuple index out of range |
wordタプルは0~4のインデックスを持ちます。ですからword[5]はエラーになってしまします。
次のように負の数のインデックスを指定するとタプルの後ろから要素を取得できます。このときは-1、-2と小さくなっていきます。
1 2 3 4 5 6 7 |
>>> word = ('a', 'b', 'c', 'e', 'x') >>> word[-1] 'x' >>> word[-3] 'c' >>> word[-6] IndexError: tuple index out of range |
このときもインデックスが小さすぎると最後のように「IndexError」になります。
リストとタプルのインデックスの書き方は同じです。
タプルの結合
タプルの結合とは足し算のことです。「+」記号を使って複数のタプルを一つにまとめることができます。
1 2 3 |
>>> sample = ('a', 'b', 'c') + (1, 2, 3) >>> sample ('a', 'b', 'c', 1, 2, 3) |
単純に要素をつなげるだけならできますが、部分的に変更したい場合は以下のように、タプルをリストに変換してから行います。
タプルをリストに変換する方法
- list関数:タプル→リストの変換
- tuple関数:リスト→タプルの変換
1 2 3 4 5 6 7 8 9 10 11 |
>>> word = ('a', 'b', 'c', 'e', 'x') #タプル→リストの変換 >>> word_list = list(word) >>> word_list ['a', 'b', 'c', 'e', 'x'] #リスト→タプルの変換 >>> word_tuple = tuple(word_list) >>> word_tuple ('a', 'b', 'c', 'e', 'x') |
このように、リストに変換してから要素を変更して、最後にタプルに戻せば変更は可能です。
Pythonのコンテナの一つであるリストに関して詳しく見ていきましょう。リストを自由に操作するためのメソッド11個の使い方を解説します。 メソッドとは? メソッドとはあるデータ型専用の関数のことです。なので、以下で紹介してるメ[…]
タプルの要素数
リストの要素数を確認するときはlen関数を使います。引数にリストを渡すと要素数を返してくれます。
1 2 3 |
>>> sample = ('a', 'b', 'c') >>> len(sample) 3 |
リストの要素数を求められると以下のようにfor文で使うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#タプルの定義 sample = ['a', 'b', 'c'] #タプルの要素数 x = len(sample) #ループ for i in range(x): print(sample[i]) #出力結果 a b c |
変数xにタプルの要素数を代入して、それをrange関数に渡します。すると、その回数文ループしてくれます。
「sample[i]」のように書いてタプルの要素全てを取り出す方法も覚えておくと便利ですね。
まとめ
- タプルは変更不可
- リストに変換してから変更
- タプルの要素数はlen関数を使う
- イミュータブル・イテラブル・シーケンスの意味を覚えておこう
- コンテナ4種類「リスト・タプル・辞書・セット」とは?
- リストとは?インデックス・要素数・結合する方法を解説
- リストに使えるメソッド11個「追加・削除・ソート」
- for文でリストのインデックスと要素を取り出す(enumerate)
- リストで内包表記する方法「for・if・lambdaの書き方」
- タプルとは?追加・削除・結合・リストに変換する方法
- リスト・タプルをスライスする方法とインデックスの覚え方
- 辞書とは?追加・削除・上書きする方法
- 辞書に使えるメソッド5個(keys・values・items・get・setdefault)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]