Если я правильно понимаю ваш вопрос, то вы НЕ меняете коллекцию, пока выполняете ее. Что вы можете сделать, это перебрать диапазон индексов, а затем вы можете изменить коллекцию. Например:
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(fruits[i])
fruits = ["1", "2", "3"]
print(fruits)
Но будьте осторожны с индексом вне диапазона, если ваша длина fruits
изменяется. Самый безопасный способ - использовать while
l oop:
fruits = ["apple", "banana", "cherry"]
i = 0;
while i < len(fruits):
print(fruits[i])
fruits = ["1", "2", "3"]
print(fruits)
i += 1
Если вы хотите полностью сбросить итерации в том же l oop, что является очень странным сценарием, но вы можете сделать:
fruits = ["apple", "banana", "cherry"]
i = 0
while i < len(fruits):
print(fruits[i])
newFruits = ["1", "2", "3"]
if newFruits != fruits:
i = -1
fruits = newFruits
print(fruits)
i += 1
Помните, что этот код неэффективен, потому что:
- Вы присваиваете новый массив на каждой итерации, что может привести к утечке памяти.
- Сравнение массивов O (n) операция сложности.
Для лучшего кода требуется больше информации о проблеме.