Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

「Pythonで、 `a, b = 100, 200` などの、カンマ区切りの複数の値や変数は何ですか?」タプルのアンパックについて解説します

f:id:kenken0326:20190925121216p:plain こんにちは。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)と表示される
Copyright ©2017-2019 BeProud Inc. All rights reserved.