タプルはPythonの組込み型の一つで、リスト(list)と異なりイミュータブル(変更不可)なデータ型です。要素をカンマ(,)で区切ることで生成できます。今回は、こんなタプルの特徴と生成方法など基本についてまとめます。
環境
- OS: Ubuntu16.04LTS
- Python3.7.3@Anaconda
タプル(tuple)
特徴
タプルの特徴を以下に挙げます。★部はリスト(list)と異なる特徴のところです。
- イミュータブル(変更不可)(★)
- 一般的に異種(★)のデータの集まりを格納するために使われる
- 共通のシーケンス演算をすべて実装
生成方法
タプルの生成方法について以下に記載します。
- 要素をカンマ(,)で区切る。
カッコ()は無くてもよい!(但しコード上、読みにくくならないように気をつけてね!(意訳)と公式には記載があります)
# 要素をカンマ(,)で区切る
>>> a = 1, 2, 3
>>> type(a)
<class 'tuple'>
# カッコで囲んだ場合
>>> a = (1, 2, 3)
<class 'tuple'>
但し、空のタプルの場合はカッコ()は必要。
>>> a = ()
>>> type(a)
<class 'tuple'>
単要素(一つしか要素が無い)場合は、最後にカンマ(,)を忘れずに!
# 単要素は最後にカンマ(,)を付ける
>>> a = 1,
>>> type(a)
<class 'tuple'>
# カッコで囲んだ場合
>>> a = (1,)
>>> type(a)
<class 'tuple'>
ちなみにカンマ(,)が無いとタプルじゃなくなります(そらそうですね)
>>> a = 1
>>> type(a)
<class 'int'>
# カッコが合ってもだめ
>>> a = (1)
>>> type(a)
<class 'int'>
引数iterableは、シーケンス(リストや文字列等)等のイテラブルなオブジェクトやイテレータです。
引数iterableの項目と同じ項目、同じ順のタプルを生成します。
# リストをタプルに変換
>>> a = tuple([1, 2, 3])
>>> a
(1, 2, 3)
# 文字列をタプルに変換
>>> s = tuple('abc')
>>> s
('a', 'b', 'c')
# rangeオブジェクトをタプルに変換
>>> a = tuple(range(5))
>>> a
(0, 1, 2, 3, 4)
引数を省略した場合は、空のタプルが返ります。
>>> a = tuple()
>>> a
()
尚、数値型はイテラブルではないので、下記のようにTypeErrorになります。
>>> a = tuple(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
まとめ
今回はPythonの組込み型の一つ、タプルについてその特徴と生成方法についてまとめました。
コメント
[…] 参考記事:【Python】タプルの使い方の基本 […]