Python の For ループ内のリスト要素の削除
Python では、リストから要素を削除するシナリオが発生する場合があります。 for ループを使用してそれを反復しながら。ただし、次のコード スニペットは期待どおりに実行されません:
a = ["a", "b", "c", "d", "e"] for item in a: print(item) a.remove(item)
このコードは、反復中にリストから要素を削除しようとする不適切な試みにより、エラーが発生します。この問題を解決するには、代替アプローチを検討する必要があります。
解決策: ループ実行の代替
特定の要件に応じて、リストから要素を削除する方法がいくつかあります。ループ中:
コピーを作成して削除要素:
例:
a_copy = a.copy() for item in a_copy: if condition is met: a.remove(item)
しばらくお待ちくださいループ:
For例:
while a: item = a.pop() # Remove and store the last element if condition is met: a.remove(item)
フィルターまたはリストの内包表記:
結果のリストを元のリストに代入します。
a = filter(lambda item: condition is met, a) # Using filter()
a = [item for item in a if condition is met] # Using list comprehension
これらの代替アプローチを利用することにより、を使用すると、for ループ内でリストを反復処理しているときでも、リストから要素を正常に削除できます。
以上がFor ループで Python リストを反復処理する際に、そのリストから要素を安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。