リストのコピーについて
リストのコピーの振る舞いがイメージと違ったのでメモ
# 変数代入 >>> a = 1 >>> b = 2 >>> a 1 >>> b 2 >>> >>> # リスト代入の振る舞い >>> a = [1,2,3] >>> b = a >>> a.append(4) >>> >>> a [1, 2, 3, 4] >>> b [1, 2, 3, 4] >>> # リストコピーの振る舞い >>> a = [1,2,3] >>> b = copy.copy(a) >>> a.append(4) >>> >>> a [1, 2, 3, 4] >>> b [1, 2, 3] >>> >>> # 多重リストコピーの振る舞い >>> a = [[1,2],[3,4],[5,6]] >>> b = copy.copy(a) >>> a[0].append(7) >>> >>> a [[1, 2, 7], [3, 4], [5, 6]] >>> b [[1, 2, 7], [3, 4], [5, 6]] >>> >>> # 多重リストコピーの振る舞い(ディープコピー) >>> a = [[1,2],[3,4],[5,6]] >>> b = copy.deepcopy(a) >>> >>> a[0].append(7) >>> >>> a [[1, 2, 7], [3, 4], [5, 6]] >>> b [[1, 2], [3, 4], [5, 6]] >>>