Pythonの代入文では、複数の値を複数の名前にバインドできます。
a, b = 1, 'foo'
この用法は、通常の1つの名前への代入と連ねて使用することも可能です。
a, b = c = 1, 'foo'
上記の代入文では、cはtuple型の(1, 'foo')を指します。
個別の値と、値のシーケンスの両方に名前を付けたいときに簡潔に記述できて便利です。
cをtupleではなく、listで取得したい場合、次のように書きます。
a, b = c = [1, 'foo']
代入を連ねた用法を使用する際に、値がmutableの場合は注意が必要です。例えば次のような場合で、listオブジェクトの['foo']がmutableです。
a, b = c = 1, ['foo']
この例の場合、bは、['foo'] を、cは、(1, ['foo'])を指していますが、これらの['foo']は同じlistオブジェクトを指しています。ですので、
b.append('bar')
とすると、bもc[1]も、['foo', 'bar'] に変わります。従って、cは、(1, ['foo', 'bar'])となります。