2つの for を持つ内包表記
次のコードを実行したときの出力として、正しいものを1つ選べ。
print([(x, y) for x in [1, 2] for y in [1, 3] if x != y])
- A
[(1, 3), (2, 1), (2, 3)] - B
[(1, 1), (1, 3), (2, 1), (2, 3)] - C
[(1, 3), (2, 3)] - D
[(1, 1), (2, 3)]
正解と解説を見る
正解:A
内包表記に for を2つ書くと、入れ子のループと同じ順で要素を作る。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print([(x, y) for x in [1, 2] for y in [1, 3]…` | — |
| 結果 | 実際の出力 | [(1, 3), (2, 1), (2, 3)] |
- A
正しい。for を2つ書くと、入れ子のループと同じ順で組合せを作る。x と y が等しい (1, 1) は除かれる。
- B
誤り。if で x と y が等しいものを除いている。
- C
誤り。(2, 1) も条件を満たす。
- D
誤り。zip のように同じ位置の要素を組にするわけではない。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。