Pythonでリストをコピーするときの注意

Pocket

Pythonでリスト(配列)をコピーするの注意についてメモします。

リストaをリストbにコピーするとき次のようにすると失敗します。

a = [0, 1, 2]
b = a
b[1] = 9
print(a)

結果
[0, 9, 2]

bにaを代入してbを操作すると元のaに影響してしまうのです。
次のようにします。

a = [0, 1, 2]
b = a[:]
b[1] = 9
print(a)

結果
[0, 1, 2]

単純に代入するのではなくスライスを使います。
a[i:j]
とするとリストのi番目からj-1番目までを返します。
iを省略すると最初から、jを省略すると最後までを返します。
a[:]とすると最初から最後までを返します。
この場合、bを操作しても元のaには影響しません。

関連記事

[ 2019年10月5日 | カテゴリー: デジタル | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報