上級 › イテレート中のリスト変更で要素が飛ばされる › パターン2
イテレート中のリスト変更で要素が飛ばされる
forループでリストを走査しながら同じリストからremove()すると、要素の位置がずれて一部が処理から漏れます。
1 fruits = ["apple", "banana", "banana", "cherry"] 2 for f in _____________: ^ 3 if f == "banana": 4 fruits.remove(f) 5 print(fruits)
出力: ['apple', 'banana', 'cherry']期待: ['apple', 'cherry'] (エラーにはなりません)
空欄を埋めて実行を通す
同じ値が連続している場合に特に発覚しやすいパターンです。1つ消えると、残りの1つが繰り上がって判定をすり抜けます。
次の問題