こんにちは。PyQサポートです。
質問
タプルの解説の中で、「複数の変数に要素を代入する際
a, b = 100, 200
のように()
を付けないこともできる」とありました。 なぜ、このように書くことができるのでしょうか?
回答
タプルのアンパック
タプルの丸括弧は省略することができます。
そのため、質問の式 a, b = 100, 200
は、 a, b = (100, 200)
と同じ意味を表します。
左辺の変数 a,b それぞれに数値が代入されます。
サンプルコード1
a, b = 100, 200 # 各変数a, bへの値の代入 print(a, b) # 100 200と各変数に代入された値が表示される print(a) # 100 print(b) # 200
このようにタプルに格納されている要素の一つ一つを別々の変数へ代入することを、タプルのアンパックといいます。
アンパックではないタプルの代入の例
アンパックする時、代入する変数と要素の数が一致している必要があります。 左辺の変数が1つの時は、アンパックされずに変数にタプルが代入されます。
サンプルコード2
c = 100, 200 # 変数cへのタプルの代入 print(c) # (100, 200)と表示される