Python の代入の色々な書き方



#
a = 1

2つ以上の変数に同じオブジェクトを代入


#
a = b = c = 1

2つ以上の変数に異なるオブジェクトを代入


#
a = 0; b = 1; c = 2

#
a, b, c = 0, 1, 2


# tuple
a, b, c = (0, 1, 2)


# list
a, b, c = [0, 1, 2]


# range
a, b, c = range(3)


# function
def f():
    return 0, 1, 2

a, b, c = f()


# iterator
a, b, c = (i for i in range(3))


# stdin 1
# 標準入力から 0, 1, 2 を入力
a, b, c = eval(input())
0, 1, 2


# stdin 2
# 標準入力から 0, 1, 2 を入力
# stdin 1 に比べて長いけど、確実に int が代入される安全な書き方
a, b, c = map(int, input().replace(' ', '').split(',')) 
0, 1, 2


for 文の in の中に書けるものを右辺において複数同時に代入することができます。ちなみに 0, 1, 2 も 関数 f も tuple を生成しています。

>>> 0, 1, 2
(0, 1, 2)
>>> 
>>> f()
(0, 1, 2)
>>>



代入のもう少し詳しい動作について、図を使って説明しています。