Это концептуальная ошибка, а не именно питона, где угодно если ты удаляешь элементы списка, пока итерируешься по нему, ты будешь пропускать элементы. Решения два, либо переписать логику на "добавлять нужные элементы в новый список, а ненужные не добавлять", а потом заменить этим списком старый, либо итерироваться по копии списка, и изменять сразу исходный
не удаляй ничего из контейнера, по которому итерируешься
если нужно, сделай копию, в данном случае можно просто ничего не удалять и опустошить массив после цикла
поведение возникает из-за того, что итератор по массиву после его модификации инвалидируется и указывает уже не на тот элемент, что до удаления
У тебя по индексам цикл идет.
Печатаешь индекс 0 (это число 1)
1
удаляешь
теперь индекс у тебя равен 1, но массив сдвинулся, поэтому через двойку мы перескакиваем, печатаем следующее число: 3
3