Python ループでのリストの変更について
ループを使用してリストを反復処理しているときにリスト内の要素を変更しようとすると、変更が持続しないように見える問題。この動作は、ループ内で割り当てられた変数を Python が処理する方法に起因します。
主要な問題
Python では、ループ内の要素を参照する変数をループ内で割り当てると、 list (例: for i in li:) の場合、リスト自体を変更するのではなく、その要素への新しい参照を作成します。したがって、i を変更しようとしても、実際にはリスト内の値を変更するわけではありません。
例
次のコードを考えてみましょう:
li = ["spam", "eggs"] for i in li: i = "foo" print(li) # Output: ["spam", "eggs"]
ループ内で i に "foo" を代入しましたが、i は li 内の要素を直接参照せず、むしろ参照しているため、li の値は変化しません。
解決策
ループ中にリスト要素を変更するには、いくつかのオプションがあります:
以上がPython ループで「i」を変更してもリストの要素が変更されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。