Python 模擬試験

Python実践 模擬試験 第6回 問5・3章 Pythonの言語仕様(リスト・タプル・辞書・集合)

スライスによるコピー

次のコードを実行したときの出力として、正しいものを1つ選べ。

a = [1, 2, 3]
b = a[:]
b.append(4)
print(a, a is b)
  1. A

    [1, 2, 3] False

  2. B

    [1, 2, 3, 4] True

  3. C

    [1, 2, 3, 4] False

  4. D

    [1, 2, 3] True

正解と解説を見る

正解:A

a[:] や a.copy() は、浅いコピーを作る。b = a は、同じオブジェクトへの別名で、コピーではない。

順実行する行実行後の変数
1`a = [1, 2, 3]`a = [1, 2, 3]
2`b = a[:]`b = [1, 2, 3], a = [1, 2, 3]
3`b.append(4)`b = [1, 2, 3, 4]
4`print(a, a is b)`a = [1, 2, 3], b = [1, 2, 3, 4]
結果実際の出力[1, 2, 3] False

学習のポイント:入れ子のリストは、copy.deepcopy。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。