ホームページ >バックエンド開発 >Python チュートリアル >関数のパラメータとして渡されたリストを変更しても元のリストに影響しないのはなぜですか?
関数内のリストの変更
プログラミングでは、特にデータを操作する関数でリストを操作するのが一般的です。ただし、関数内でパラメーターとして渡されたリストを変更しようとすると、問題が発生します。
次のコード スニペットを考えてみましょう:
def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) list1 = [0] * 5 function1(list1)
関数 1 を呼び出した後にリスト 1 が変更されることが予想されるかもしれませんが、それは変わらないままです。これは、list_arg 変数に何かを代入するときに、それが新しい値を指すためです。ただし、元のリストは影響を受けません。
これを解決するには、代わりに元のリストの要素を変更します。
def function1(list_arg): a = function2() # returns an array of numbers list_arg[:] = list(a)
list_arg[:] を使用すると、リストのすべての要素が効果的に置き換えられます。元のリスト。ただし、このようなインプレース変更は混乱を招く可能性があり、常に最良のアプローチであるとは限らないことに注意してください。
以上が関数のパラメータとして渡されたリストを変更しても元のリストに影響しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。