さつまろぐ

CAEとかプログラムとか、出来たことの記録など、誰かのお役に立てれば幸い。

Pythonで遊ぶ タプル

タプルはシーケンスの一種。 リストとは似ているが微妙に違う。違いを生かせる気はしないけれど、一応メモ。

タプル

リストとの違い

  • タプルは変更ができない。リストは変更ができる。
  • タプルは( )で表す。リストは[ ]で表す。

タプルの作成

要素を , で区切るだけでタプルになる。

>>> 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)
広告