Python: forループでアンパックを使用した場合の出力
解決したいこと
Pythonで、forループを二重に使ってタプルを作成しようとした際に、以下のようになりました。
#1と#2が、逆なのは当然ですが、
#3において、iとjをアンパックを使って入れ替えたら、不思議な結果となりました。
#3も#2と同じになると想定していましたが、1 0, 2 1, 3 2, 4 3と、不思議な数列が繰り返し出力されています。
もしかしたら、基本的過ぎる質問なのかもしれませんが、この理由について教えて頂けたら嬉しいです。
よろしくお願いします。
該当するソースコード
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#1
for i in range(5):
for j in range(5):
print(i, j, end=", ")
#2
for i in range(5):
for j in range(5):
print(j, i, end=", ")
#3
for i in range(5):
for j in range(5):
i, j = j, i
print(i, j, end=", ")
出力結果
0 0, 0 1, 0 2, 0 3, 0 4, 1 0, 1 1, 1 2, 1 3, 1 4, 2 0, 2 1, 2 2, 2 3, 2 4, 3 0, 3 1, 3 2, 3 3, 3 4, 4 0, 4 1, 4 2, 4 3, 4 4,
0 0, 1 0, 2 0, 3 0, 4 0, 0 1, 1 1, 2 1, 3 1, 4 1, 0 2, 1 2, 2 2, 3 2, 4 2, 0 3, 1 3, 2 3, 3 3, 4 3, 0 4, 1 4, 2 4, 3 4, 4 4,
0 0, 1 0, 2 1, 3 2, 4 3, 0 1, 1 0, 2 1, 3 2, 4 3, 0 2, 1 0, 2 1, 3 2, 4 3, 0 3, 1 0, 2 1, 3 2, 4 3, 0 4, 1 0, 2 1, 3 2, 4 3,