Last Updated on 2025年7月17日
コードと選択肢は以下になります。
実行結果は何が出力されるでしょうか。
|
1 |
print([(x, y) for x in [0,1,2] for y in [1,2,3] if x != y]) |
| 1 | [(0, 1), (0, 2), (0, 3), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)] |
| 2 | [(0, 1), (2, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)] |
| 3 | [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)] |
| 4 | [(0, 1), (1, 1), (2, 1), (0, 2), (1, 2), (2, 2), (0, 3), (1, 3), (2, 3)] |
回答
| 3 | [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)] |
メモ
一見複雑そうに見えますが、凄く簡単に出力結果が分かります。
「if x != y」では「x」と「y」が同じ値だった場合はループしない。
という意味になりますので、
xが0のとき、yが1,2,3でループされ
xが1のとき、yが2,3でループされ
xが2のとき、yが1,2でループされ
xが3のとき、ループから抜けるので、
[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)]が出力されるのですね!

