上級 › イテレート中のリスト変更で要素が飛ばされる › パターン5
イテレート中のリスト変更で要素が飛ばされる
forループでリストを走査しながら同じリストからremove()すると、要素の位置がずれて一部が処理から漏れます。
1 words = ["aa", "b", "c", "dd"] 2 for w in ____________: ^ 3 if len(w) == 1: 4 words.remove(w) 5 print(words)
出力: ['aa', 'c', 'dd']期待: ['aa', 'dd'] (エラーにはなりません)
空欄を埋めて実行を通す
文字数で絞り込んで削除する処理でも同様です。連続して条件に合う要素があると一部が処理から漏れます。
次の問題