Python
ポカリ水
メモ17【for】
コードと選択肢は以下になります。
実行結果は何が出力されるでしょうか。
|
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)]が出力されるのですね!