Python: コピー変数への変更が元の変数に影響する [重複] 質問する

Python: コピー変数への変更が元の変数に影響する [重複] 質問する

元のリストを保持したままいくつかの操作を行うために、コピーを作成したリストがあります。ただし、copy_listを と等しく設定するとorg_list、それらは同じものになり、 を変更するとcopy_listorg_list変更されます。例:

org_list = ['y', 'c', 'gdp', 'cap']

copy_list = org_list

copy_list.append('hum')

print(copy_list)
print(org_list)

戻り値

['y', 'c', 'gdp', 'cap', 'hum']
['y', 'c', 'gdp', 'cap', 'hum']

実際に何が起こっているのかあまりよく分かりませんが、実際には同じことであるようにorg_list見えます。copy_list

次のような面倒なことを行わずに、org_list の独立したコピーを作成する方法はありますか?

copy_list = []
for i in org_list:
    copy_list.append(i)

私がこう言うのは、パンダのデータフレームなど、他の種類の変数でも同じ問題が発生するからです。

ベストアンサー1

これは、Python では変数を設定すると、実際には変数への参照が設定されるためです。Python を学習している人のほとんどが、ある時点でこれに遭遇します。解決策は、リストをコピーするだけです。

copy_list = org_list[:] 

おすすめ記事