ホームページ >バックエンド開発 >Python チュートリアル >元のリストに影響を与えずに、Python でネストされたリストを効率的にコピーするにはどうすればよいですか?

元のリストに影響を与えずに、Python でネストされたリストを効率的にコピーするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-24 02:40:11206ブラウズ

How Can I Efficiently Copy Nested Lists in Python Without Affecting the Original?

Python でネストされたリストを効率的にコピーする

Python では、その変更可能な性質のため、ネストされたリストのコピーは難しい場合があります。浅いコピー技術が使用されている場合、1 つのリストを変更すると元のリストに影響します。この制限を克服するには、Python でのリストのコピーの微妙な違いを理解し、コピーされたリストの独立性を保証する方法を選択することが不可欠です。

1D リストの例を考えてみましょう:

a = [1, 2]
b = a[:]

このシナリオでは、b を変更しても a に影響を与えないため、浅いコピーで十分です。ただし、2D リストまたはネストされたリストを操作する場合、同じアプローチは失敗します。

a = [[1, 2], [3, 4]]
b = a[:]

この場合、b を変更すると a にも影響します。ネストされたリストの真に独立したコピーを作成するには、より深いレベルのコピーを掘り下げる必要があります。

解決策: copy.deepcopy() を使用したディープ コピー

Python のコピーモジュールは、その deepcopy() 関数を使用して、ネストされたリストをディープコピーするための堅牢なソリューションを提供します。浅いコピーとは異なり、この関数はネストされた構造を再帰的に反復し、すべてのレベルで独立したコピーを作成します。

import copy
b = copy.deepcopy(a)

deepcopy() を使用すると、 b を変更しても元のリスト a には影響しません。この手法により、2 つのリストが分離され、独立して操作できるようになり、入れ子になったリストの変更の問題に対処できます。

以上が元のリストに影響を与えずに、Python でネストされたリストを効率的にコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。