Таким образом, проблема в том, что мы используем диапазон (0, len (list_stops)), если вместо этого используем перечисление следующим образом, BEWARE INFINITE LOOP , потому что мы также продолжаем добавлять элементы в список. Так что будьте осторожны, но это должно дать желаемый результат. Я изменил некоторую часть кода, чтобы запустить его.
Перечисление позволяет получить как элемент списка (val), так и индекс, в котором мы сейчас находимся.
list_stops = [[1,2,3], [4,5,6]]
list_stops_x = [1,2,3,4,5,6]
newer = [[7, 8, 9], [10, 11, 12]]
id_b = 9
for i, val in enumerate(list_stops):
print(val)
for j in range(1, len(list_stops[i])):
current = newer
list_stops.extend(current)
for k in range(0, len(current)):
for m in range(0, len(current[k])):
list_stops_x.extend([current[k][m]])
# if id_b in list_stops_x:
# print("id_b in")
# break
РЕДАКТИРОВАТЬ 1
в вашем коде, который был в предложении редактирования, у вас есть циклы, которые выглядят следующим образом:
for i in range(0, len(list_stops)):
...
Их следует заменить наЧтобы устранить проблему, выполните следующие действия:
for i, val in enumerate(list_stops):
...
У меня трудное время для тестирования кода, но попробуйте заменить циклы for на указанный мной тип и дайте мне знать
Править2
Если мы продолжим добавлять в список конечно, он будет бесконечно повторяться, пока мы не выйдем куда-нибудь. Вы можете видеть этот пример, когда я добавляю элементы в список a из списка b , а затем удаляю элемент. Как видно из выходных данных, мы зациклились восемь раз, поэтому мы знаем, что это работает, вы должны отразить такие изменения в своем коде
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
for idx, val in enumerate(a):
print("Loop Count: " + str(idx))
if b:
a.append(b[0])
b.remove(b[0])
Loop Count: 0
Loop Count: 1
Loop Count: 2
Loop Count: 3
Loop Count: 4
Loop Count: 5
Loop Count: 6
Loop Count: 7