条件付きの二重ループ
次のコードを実行したときの出力として、正しいものを1つ選べ。
print([(i, j) for i in range(2) for j in range(2) if i != j])
- A
[(0, 0), (1, 1)] - B
[(0, 0), (0, 1), (1, 0), (1, 1)] - C
[(1, 0), (0, 1)] - D
[(0, 1), (1, 0)]
正解と解説を見る
正解:D
内包表記の if は、要素を絞り込む。複数の for は、書いた順に外側から内側のループになる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print([(i, j) for i in range(2) for j in rang…` | — |
| 結果 | 実際の出力 | [(0, 1), (1, 0)] |
- A
誤り。
i == jの組み合わせ。 - B
誤り。条件で絞り込まれる。
- C
誤り。外側のループの順に並ぶ。
- D
正しい。すべての組み合わせのうち、
i != jのものだけ。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。