ホームページ >バックエンド開発 >Python チュートリアル >Python でコピー変数を変更すると元の変数に影響するのはなぜですか?

Python でコピー変数を変更すると元の変数に影響するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 19:11:13682ブラウズ

Why Does Changing a Copy Variable Affect the Original Variable in Python?

Python: コピー変数の変更が元の変数に影響する理由

Python では、コピーに変更を加えた場合に特有の動作が発生する場合があります。変数は元の変数も変更するようです。これは、Python 変数が実際の値ではなく参照を保存するために発生します。

これを理解するには、次の状況を考慮してください。

org_list = ['y', 'c', 'gdp', 'cap']
copy_list = org_list       # Pass reference to org_list
copy_list.append('hum')

print(copy_list)           # ['y', 'c', 'gdp', 'cap', 'hum']
print(org_list)            # ['y', 'c', 'gdp', 'cap', 'hum']

copy_list を org_list に割り当てる場合、新しいリストは作成されません。むしろ、メモリ内の同じリスト オブジェクトへの参照を確立します。したがって、copy_list または org_list への変更は両方の変数に直接影響します。

真に独立したコピーを作成するには、参照ではなく実際のデータのコピーを渡す必要があります。これは、スライス代入演算子を使用して実行できます。

copy_list = org_list[:]    # Create a deep copy by slicing

元のリストをスライスすることで、データの独自のコピーを持つ新しいリスト オブジェクトを作成します。 copy_list に加えられた変更は org_list には影響しません。また、その逆も同様です。

以上がPython でコピー変数を変更すると元の変数に影響するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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