1. ホーム
  2. python

[解決済み] Python リストに対する反復処理中にリストの要素を削除する [重複]。

2022-11-17 19:40:26

質問

Pythonで要素のリストを反復処理し、それに対して何らかのアクションを行い、特定の条件を満たした場合にそれらを削除しているのです。

for element in somelist:
    do_action(element)
    if check(element):
        remove_element_from_list

remove_elementの代わりに何を使うべきですか? 私は同様の質問を見ましたが、すべての要素に対して実行されるdo_action部分の存在に気づき、したがってフィルタを使用するという解決策を排除します。

どのように解決するのですか?

リストのコピーに対して常に反復処理を行い、オリジナルを自由に変更できるようにすることができます。

for item in list(somelist):
  ...
  somelist.remove(item)