2020年3月29日日曜日

【タプル】タプルの操作

 タプルはリスト同様、複数の値を一つの変数にまとめたイテラブルオブジェクト(要素をひとつずつ取り出せるオブジェクト)。リストと異なるのは値の変更・追加ができない点。そのため定数のような変更したくない値を入れておくのに用いられる。



タプルの書式とインデックスによる要素の指定

 タプルは値をカンマ(,)で区切り全体を()で囲う。

x = (1, 2, 3, 4, 5)


 値は数字や文字など型の違う要素が混在していても問題ない。

x = (1, 'りんご', 5.25)


 タプルの値はインデックスを指定することにより取得できる。インデックスは一連の要素に順番に0,1,2,・・・と順番を付けたもの。[]の中にインデックスを書き位置の指定ができる。
次の例ではインデックス2つまり3番目の要素を指定している。

x = (1, 2, 3, 4, 5)
print(x[2])

実行結果

3


 インデックスで範囲を指定する場合、コロンで区切って開始位置:終了位置を指定する。
次の例ではインデックス2(3番目の要素)からインデックス4(5番目の要素)の手前までを指定している。

x = (1, 2, 3, 4, 5)
print(x[2:4])

実行結果

(3, 4)


 後ろから位置を指定する場合はインデックスにマイナスをつける。
次の例ではインデックス-3(後ろから3番目の要素)からインデックス-1(5番目の要素)の手前までを指定している。

x = (1, 2, 3, 4, 5)
print(x[-3:-1])

実行結果

(3, 4)


 タプルはイミュータブル(変更不可)なので値を変更しようとするとエラーとなる。

x = (1, 2, 3, 4, 5)
x[4] = 7

実行結果

TypeError: 'tuple' object does not support item assignment


二次元以上のタプル

 複数のタプルを()で囲うと2次元以上のタプルを作ることができる。

x = ((1, 2, 3, 4, 5),(6, 7, 8, 9, 10))


 値の指定は次元の数の[]を使ってインデックスを指定する。
次の例ではインデックス[0]で一つ目の要素(1, 2, 3, 4, 5)を指定、インデックス[2]でその中の3番目の要素を指定している。

x = ((1, 2, 3, 4, 5),(6, 7, 8, 9, 10))
print(x[0][2])

実行結果

3


 3次元以上でも同様にインデックスを指定する。
次の例では[0]で一つ目の要素((11,12,13), 2, 3, 4, 5)を指定、次の[0]で一つ目の要素(11,12,13)を指定、[1]でその中の2番目の要素を指定している。

x = (((11,12,13), 2, 3, 4, 5),(6, 7, 8, 9, 10))
print(x[0][0][1])

実行結果

12


リファレンス

Python チュートリアル > 5.3. タプルとシーケンス

使用バージョン:Python 3.7.0

0 件のコメント:

コメントを投稿