Вам необходимо уточнить вопрос, потому что нет объяснения того, как вы должны получить желаемый результат 1, 4, 5, 6, когда вы вводите [1, 2, 3]. Следующее дает желаемый результат, но он полностью временный и не имеет смысла:
i = 0
a = [1, 2, 3]
while i < len(a):
print(a[i])
if a[i] == 1:
a = [4, 5, 6]
i = 0 # edit - good catch larsmans
else:
i += 1
Суть в том, что вы не можете изменять параметры цикла for во время выполнения цикла. Из документации по питону:
Не безопасно изменять итерируемую последовательность в цикле
(это может происходить только для непостоянных типов последовательностей, таких как списки). Если
вам нужно изменить список, который вы перебираете (например, чтобы
дублировать выбранные элементы) вы должны перебрать копию.
Редактировать: если на основе комментариев вы пытаетесь просмотреть URL-адреса, вам нужна более сложная логика для выполнения поиска в глубину или в ширину, чем просто замена одного списка (ссылки верхнего уровня) на другой список (ссылки на первой странице). В вашем примере вы полностью теряете след страниц 2 и 3 после погружения в страницу 1.