リストの代入と共有
次のコードを実行したときの出力として、正しいものを1つ選べ。
a = [1, 2]
b = a
b.append(3)
print(a)
- A
[1, 2] - B
[1, 2, 3] - C
[3] - D
[1, 2, [3]]
正解と解説を見る
正解:B
代入はオブジェクトをコピーせず、同じオブジェクトを指す名前を作る。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `a = [1, 2]` | a = [1, 2] |
| 2 | `b = a` | b = [1, 2], a = [1, 2] |
| 3 | `b.append(3)` | b = [1, 2, 3] |
| 4 | `print(a)` | a = [1, 2, 3] |
| 結果 | 実際の出力 | [1, 2, 3] |
- A
誤り。
b = aはリストをコピーしない。 - B
正しい。
b = aでは、a と b が同じリストを指す。b に追加すると、a から見ても変わる。別のリストにしたいときはa[:]やa.copy()でコピーする。 - C
誤り。append は要素を末尾に追加する。
- D
誤り。append(3) は3を要素として追加する。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。