今さらPython3 (15) - タプルにまつわるエトセトラ

この本の第3章を読み進めています。スピードアップしないといけないハズなんだけど、低空飛行のままですね。

入門 Python 3

入門 Python 3

まずはリストの出だしと同じように。

カンマが大事

>>> empty_tuple = ()
>>> empty_tuple
()
>>> one_marx = 'Groucho'
>>> one_marx 
'Groucho'
>>> one_marx = ('Groucho')
>>> one_marx 
'Groucho'
>>> one_marx = 'Groucho',
>>> one_marx
('Groucho',)

これを見ると、要素が1個のタプルの後ろにもカンマを付けないとダメというのが理解できるね。最初に試したやつは、単にstrとして認識されている。2番目のヤツはタプルだから括弧でくくってみたけど、同じくstrとして認識されている。

>>> mare_tuple = 'Groucho', 'Chico', 'Harpo'
>>> mare_tuple
('Groucho', 'Chico', 'Harpo')
>>> marx_tuple = ('Groucho', 'Chico', 'Harpo')
>>> mare_tuple == marx_tuple
True

要素が2つ以上ある場合は、最後のカンマは省略できる。すでに試しちゃったけど、値を受け渡すときに()のあるなしは関係ない。

アンパック

これも、すでに使ったテクニックだけど。

>>> icecream = 'tuttifruitti',
>>> password = 'swordfish',
>>> password, icecream = icecream, password
>>> password
('tuttifruitti',)
>>> icecream
('swordfish',)
>>> user = ('abc1234', 'passw0rd')
>>> id, password = user
>>> id 
'abc1234'
>>> password
'passw0rd'
>>> 

前半の例は、本に載っていたヤツそのままで、値の交換をしているパターン。でも、実際に目にすることが多いのは、タプルの中から複数の変数に値を受け渡す方だと思うけど。

タプル vs リスト

イミュータブルなタプルとミュータブルなリストの使い分けの話。プログラムの中でガシガシ書き換えたいならリストを使えば良いし、タプルは構造化した値の受け渡しとかで使うと覚えているけど、その理解でだいたい大丈夫だと思うけどな。

今回は短めだけど、次の辞書が長めなのでここで終了。

(つづく)