元のリストを保持したままいくつかの操作を行うために、コピーを作成したリストがあります。ただし、copy_list
を と等しく設定するとorg_list
、それらは同じものになり、 を変更するとcopy_list
もorg_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[:]