итерироватся по этому листу бесконечно пока в нем есть элементы. Как только определнный аттрибут у элемента в этом листе становится True он выкидыватеся из этого списка. Как только становится 0 объектов, то цикл останавливается. Если стандартное что то в python что бы это реализовать без плясок с двумя вложенными циклами?
что то типа itertools.cycle но с возможностью выкидывать элементы
while len(list)
ну так в нути еще один цикл в котором по очереди элементы дергаются =)
не нравятся вложенные циклы
А как ты представляешь реализации без вложенного ?
Пример
Вариант с одним циклом: lst = list(range(10)) i = 0 while lst: print(lst[i]) i += 1 #if some_condition: # lst.pop() if len(lst): i %= len(lst)
Ты за каждую итерацию проверяешь только один элемент в списке. А если к примеру 0 элемент никогда не станет true? Ты остальные так и никогда не проверишь
За итерацию проверяется один элемент, но не только с индексом 0, а в соответствии с i.
Да, ты прав. Но это трудно читать
Скорее трудно понять алгоритм 😉, читается-то легко.
так что два цикла это меньшее из зол
Обсуждают сегодня