Изменение списка во время итерации в PythonPython

Программы на Python
Anonymous
Изменение списка во время итерации в Python

Сообщение Anonymous »

Сейчас у меня ситуация выглядит примерно так:

Код: Выделить всё

 for element in some_list:
if(some_condition==True):
some_list.clear()
some_list.append(new_elements)
Однако это вызывает у меня странное поведение. Цикл for выполняется только столько итераций, сколько исходная длина some_list.
Как я могу это исправить, чтобы можно было вносить изменения в список и при этом цикл работал правильно?
Вот мой настоящий код, если вы захотите его увидеть. Это часть алгоритма проверки изоморфизма между графами.

Код: Выделить всё

  if (len(v_in_g1_with_color) + len(v_in_g2_with_color)) >= 4:
for vertex2 in v_in_g2_with_color:
if(sorted(refinement2[0][0].values()) == sorted(refinement2[1][0].values())):
v += 1
vertex_to_be_checked = list((colours1.keys()))[v]
v_in_g2_with_color.clear()
for key, value in colours2.items():
if value == colours1[vertex_to_be_checked]:
v_in_g2_with_color.append(key)
continue
Я пока не нашел решения. Но ожидаемое поведение заключается в том, чтобы иметь возможность изменять список и перебирать новую измененную версию списка вместо старой.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -in-python

Вернуться в «Python»