ホームページ > バックエンド開発 > Python チュートリアル > Python でリストを関数に渡すときに、意図しないリストの変更を回避するにはどうすればよいですか?

Python でリストを関数に渡すときに、意図しないリストの変更を回避するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-02 01:43:10
オリジナル
957 人が閲覧しました

How Can I Avoid Unintended List Modifications in Python When Passing Lists to Functions?

参照ではなく値でリストを渡す

Python でリストを扱うときは、参照渡しの概念を理解することが重要です。別の変数によって参照されるリストは、両方の変数に反映されます。これにより、特に同じリストへの複数の参照を操作する場合、予期しない動作が発生する可能性があります。

次の例を考えてみましょう:

a = ['help', 'copyright', 'credits', 'license']
b = a
b.append('XYZ')
print(b)  # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
print(a)  # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
ログイン後にコピー

この例では、 b は同じリストへの参照です。として。 'XYZ' を b に追加すると、両方の変数が同じ基になるリストを指すため、a にも追加されます。これは参照渡しとして知られています。

これを回避するには、代わりにリストを値で渡す必要があります。 Python では、元のリストのコピーを作成することでこれを実現できます。これを行うにはいくつかの方法がありますが、最も一般的なのはスライス演算子を使用することです。

b = a[:]
ログイン後にコピー

これにより、a の要素のコピーを含む新しいリストが作成されます。 b に加えられた変更は a には影響しませんし、その逆も同様です。例:

b.append('ABC')
print(b)  # Output: ['help', 'copyright', 'credits', 'license', 'XYZ', 'ABC']
print(a)  # Output: ['help', 'copyright', 'credits', 'license', 'XYZ']
ログイン後にコピー

この場合、b に 'ABC' を追加しても、a は別のリストを参照するようになるため、影響しません。

以上がPython でリストを関数に渡すときに、意図しないリストの変更を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート