質問: zeros((X,Y),"float64") A,B=B,A ``` ---
回答: `A, B = B, A` は、2 つの変数 `A`, `B` の内容を入れ替えています。多重代入などと呼ばれており、「`B` の値を `A` に代入」と「`A` の値を `B` に代入」を同時に行っていると解釈できます。この代入の前後で `A`, `B` の内容を `print` すると分かりやすいです。 Python 以外の言語だと、2 つの変数の入れ替え操作 (いわゆる swap 操作) は以下のように 3 つ目の一時的な変数を用意して行うのが一般的なことがあります。 ``` tmp = B B = A A = tmp ``` Python ではこれと同様のことを 1 行で書けます。 ``` A, B = B, A ``` より正確には、この代入はタプルへのパックとシーケンスのアンパックで実現されています。つまり、右辺がタプル `(B, A)` として解釈されたあと、そのアンパック操作が行われることで多重代入になっています。 * 参考 + 5.3. タプルとシーケンス -- Python 3 ドキュメント + Pythonでタプルやリストをアンパック(複数の変数に展開して代入) -- note.nkmk.me