タプルはシーケンスの一種。 リストとは似ているが微妙に違う。違いを生かせる気はしないけれど、一応メモ。
タプル
リストとの違い
- タプルは変更ができない。リストは変更ができる。
- タプルは
( )
で表す。リストは[ ]
で表す。
タプルの作成
要素を ,
で区切るだけでタプルになる。
>>> xx = 1, 2, 3 >>> xx (1, 2, 3) >>> yy = "aa", "bb", "cc" >>> yy ('aa', 'bb', 'cc')
正直わかりにくいので、( )
をつけた方がよさそう。
>>> xx = (1,2,3) ; yy = ("aa","bb","cc") >>> xx ; yy (1, 2, 3) ('aa', 'bb', 'cc')
空のタプルは ( )
で作る。
>>> zz = () >>> zz ()
要素が1つだけのタプル
ただの数値や文字列と区別するために、要素の後に,
をつける。
>>> x = 10 >>> y = 10, >>> x 10 >>> y (10,)
x はただの数字、yは長さ1のタプルを表してる。
>>> x = (10) ; y = (10,) >>> x ; y 10 (10,)
( )
をつけても同じ。
タプルの演算をすると、数字とタプルで結果が異なるので注意。
>>> 5 * (10 + 1) ← 数値の乗算 55 >>> 5 * (10 + 1,) ← タプルの乗算 (11, 11, 11, 11, 11)
タプルへの変換
tuple( )
でリストや文字列をタプルに変換する。
>>> x = [1,2,3,4,5] >>> y = tuple(x) >>> x ; y [1, 2, 3, 4, 5] (1, 2, 3, 4, 5)
元のリストは変更しない。
>>> x = "abcde" >>> y = tuple(x) >>> x ; y 'abcde' ('a', 'b', 'c', 'd', 'e')
文字列も同じ。
タプル要素へのアクセス
リストと同じように、インデックス指定やスライスでアクセスできる。
>>> x = (1,2,3,4,5) >>> x[2] 3 >>> x[1:3] (2, 3)