レッスン1 / 3問目

『タプルとは』

Lesson1

1~5の値が格納されたタプルを作成してください。

Lesson2

タプルはリスト同様シーケンス型のためスライスを使うことができます。スライスを用いて作成したタプルの数値2~3を取得し出力してください。インデックスは0から始まる点に注意しましょう。


シーケンスとは「順番のある要素の集まり」のことです。

Last updated:2020/2/3

(2, 3)
  1. # 1~5の値が格納されたタプルを作成してください。

  2. number_tuple = (1, 2, 3, 4, 5)

  3. # スライスを用いて作成したタプルの要素2~3を取得し出力してください。

  4. print(number_tuple[1:3])
main.py
設定
g
n
i
d
a
o
L

                 
        

    
            

Leagence Programming

pythonのロゴ

タプルとは

タプルとは

このレッスンではタプルについて学習していきましょう。

タプルはリストによく似たデータ構造であり、リスト同様インデックスを指定して要素を取得したりfor文で扱うことが可能です。

まずリストとタプルはほとんど同じものと考えてください。

そのうえで、本レッスンではリストとタプルを比較しながら説明していきます。

タプルの作成

ではまずはタプルの作成方法を見ていきましょう。

リストの場合は角括弧で要素を括りましたが、
タプルは以下のように丸括弧で要素を括ります

  1. tuple1 = (1, 2, 3)    # タプルを生成するには丸括弧で括る
  2. list1 = [1, 2, 3]    # リストは角括弧で括る

まず一つ目の違いが「丸括弧で括るか角括弧で括るか」です。

タプルのできること

タプルはリストと同じようにインデックスを指定することで要素を取り出すことができます。

  1. tuple1 = (1, 2, 3)
  2. print(tuple1[0])    # リスト同様インデックスを指定し値を取得できる
1

タプルとリストの主な違い

ここまでの説明ではリストとタプルに機能的な違いはありませんでした。

ではタプルとリストの違いは何なのでしょうか。

実はタプルとリストの違いは作成された後に、要素に対して変更を加えることができるかできないかという点です。

上記で見たようにタプルからインデックスを指定して要素を取得することはできますが、追加や削除などの変更を加えることはできません

言い換えるとタプルは読み取り専用といえます。

またタプルはリストよりも少しだけ高速に動作するという特徴もあります。

以下はタプルの要素を削除しようとするdel文ですが、タプルは要素に変更を加えることができないためエラーとなります。

  1. tuple1 = (1, 2, 3)
  2. del tuple1[0]    # タプルのインデックス0を削除しようとする
Traceback (most recent call last): File "main.py", line 2, in < module > del tuple1[0] TypeError: 'tuple' object doesn't support item deletion # タプルは要素に変更を加えることができないためエラーとなる

タプルの利点

リストではappendで要素を追加したり、pop()やremove()で要素を削除することができました。しかしタプルではこのような変更を加えることができないようになっています。つまり、タプルででできることはリストでもできるということになります。

ではなぜタプルというデータ構造が存在するのでしょうか。

例えば、タプルはデータに変更を加えられたくない場合に役立ちます。タプルは後から変更を加えることができないため思わぬ変更が生じるリスクを防ぐことができます。

「データに変更を加えたくない状況」というのがイメージしづらいと思いますが、現状ではタプルとリストの違いは変更を加えることができるかできないかの違いだということを覚えておいてください。

まとめ

ではタプルの特徴を以下にまとめます。

  • リストとよく似たデータ構造である。
  • タプルを定義する際は要素を丸括弧で括る。
  • タプルは「読み取り専用」

ちなみに「データ構造」という用語が登場しましたが、データ構造とはその名前の通りデータの構造のことであり、コンピュータの中にデータを格納する際の型です。

これまで学習したリスト、タプル、そして以降のレッスンで学習する辞書型などがこのデータ構造にあたります。