ホームページ >バックエンド開発 >Python チュートリアル >Python リストの完全に独立したコピーを作成するには?
Python リストの変更不可能なクローンの作成
new_list を my_list に割り当てる場合、実際には個別のリストが作成されるわけではありません。代わりに、これは同じリストを指す単なる参照であり、new_list の変更が my_list に反映されます。
リストを効果的にコピーする
予期しないリストの変更を回避するには、リストの複製にはいくつかのメソッドが存在します:
new_list = old_list.copy()
new_list = old_list[:]
new_list = list(old_list)
import copy new_list = copy.copy(old_list)
import copy new_list = copy.deepcopy(old_list)
例:
class Foo: def __init__(self, val): self.val = val foo = Foo(1) a = ['foo', foo] b = a.copy() c = a[:] d = list(a) e = copy.copy(a) f = copy.deepcopy(a) a.append('baz') foo.val = 5 print(f'original: {a}\nlist.copy(): {b}\nslice: {c}\nlist(): {d}\ncopy: {e}\ndeepcopy: {f}')
出力:
original: ['foo', Foo(5), 'baz'] list.copy(): ['foo', Foo(5)] slice: ['foo', Foo(5)] list(): ['foo', Foo(5)] copy: ['foo', Foo(5)] deepcopy: ['foo', Foo(1)]
以上がPython リストの完全に独立したコピーを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。