Pythonのタプルとは
タプルとは、リストや辞書型といった複数の要素を管理するデータ型の一種です。
タプルの特徴としては、
- 要素を追加・削除・変更できない
- () と , がトレードマーク
- 使用メモリがリストに比べて小さい
- 多くの場合でリストよりタプルの方が早く演算できる
- リストや辞書型と併用できる
- list() と tuple() 関数でデータ型は変更できる
などがあります。
この中でも一番のポイントは、「要素を追加・削除・変更できない」という点です。
このような特徴から”タプル”は、定数リストとも言われていますよ。
では実際のサンプルコードでタプルとリストを比較してみましょう。
〇 タプル
# タプルの定義
tuple_x = (1, 2, 3, 4, 5, 'abcde')
# タプルの中身の出力
print(tuple_x)
# タイプの出力
print(type(tuple_x))
このように2行目でタプルを定義して、4行目ではタプルの中身の出力をし、6行目ではタイプを出力しています。
実行結果は、
<class 'tuple'>
と出力されます。
〇 リスト
# リストの定義
list_x = [1, 2, 3, 4, 5, 'abcde']
# リストの中身の出力
print(list_x)
# タイプの出力
print(type(list_x))
こちらも先ほどと同じように、2行目でリストを定義して、4行目ではリストの中身の出力をし、6行目ではタイプを出力しています。
実行結果は、
<class 'list'>
このようになります。
実行した結果はどちらも似た結果になりましたね。
タプルの使いどころ
では次に”タプル”の使いどころです。
「でも、リストも辞書もタプルも同じ感じならわざわざ”タプル”を使うこともないと思うのですが。
「そこなんですよ。実はちゃんと「使いどころ」というものがあるので、特別に伝授しましょう!」
データを「リスト」でも「辞書型」でもなくあえて「タプル」で扱いたい時は、次のような場合があると思います。
- 要素の順番を変えられたくない時
- データ型に変更が出ない場合(固定の場合)
まぁ最初にお話しした通りにはなるんですが、やはり一番の使いどころは、格納するデータを変更したくない場合や順番も変えられたくない場合に有効です。
Pythonのタプルを実際に使ってみよう
では早速Pythonのタプルを使ってみましょう。
基本の構文は先ほどお話しした通りですが、実際に使うときにはどのように使うのでしょうか。
タプルの作り方
今回は、簡単な a, b, c という英字をタプルで管理してみます。
1, まずはタプルへ格納する要素の準備をしましょう。
# 格納するデータの準備
'a', 'b', 'c'
数字の場合は 1, 2, 3、文字列の場合は 'a', 'b', 'c' と , (コンマ) で区切ることで、タプル型になります。
また上記結果のように、実は()がなくてもタプルの扱いになるのですが、可読性や常習性の点から()を つけて記述するようにしましょう。
2, 次に要素を変数で管理します
# タプル要素を変数 x に代入します
x = ('a', 'b', 'c')
3, 最後に作成した”タプル”を操作してみます
# 先ほど作ったタプルの入った変数 x を出力して表示
print(x)
こうすることで、変数 x に入っているタプルが表示されます。
まとめ
「リスト」に比べてややマイナーなイメージのあるタプルですが、Pythonの基礎学習では必ず登場してきます。
またタプルを学習しだすと関数(open()やremove())もしくは引数(add(2)など)と混同するときもあると思います。
これは 『 タプル =()カッコ 』と認識しているからだと思います。
タプルの作り方でもご紹介したように、()カッコではなく ,コンマ でPythonはタプルを認識しています。
タプル習得のコツは、『 ()カッコ と ,コンマ で管理するデータ型がタプル 』と認識すると関数や引数などと混同せずにスムーズに学習が進められると思いますよ。