Форум сайта python.su
0
>>> graph = [(1, 2), (2, 3), (3, 1)] >>> path = [] >>> while len(graph) > 0: ... for i in graph: ... print('i: {}'.format(i)) ... path.append(i[0]) ... print('path: {}'.format(path)) ... graph.remove(i) ... print('graph: {}'.format(graph)) i: (1, 2) path: [1] graph: [(2, 3), (3, 1)] i: (3, 1) path: [1, 3] graph: [(2, 3)] i: (2, 3) path: [1, 3, 2] graph: []
Отредактировано Kurtz (Авг. 16, 2016 22:40:32)
Офлайн
857
KurtzТы из него удаляешь во время итерации по нему, поэтому i перескакивает. При удалении элемента в списке все элементы справа от него сдвигаются влево. А итерация идёт как бы по индексам элементов.
Почему такое происходит со списком?
for i in graph[:]:
Отредактировано py.user.next (Авг. 17, 2016 01:39:56)
Офлайн
0
py.user.nextПонял, спасибо!
Офлайн