Итак, я написал этот алгоритм, в котором при заданном наборе целых чисел он удалит все целые числа, кроме 0 и 7, а затем проверит, находятся ли остальные целые числа в определенном порядке, а затем вернет логическое значение. Код ниже:
def spy_game(nums):
for i in nums:
if i != 0:
if i == 7:
continue
else:
nums.remove(i)
else:
continue
stringlist = [str(o) for o in nums]
mystring = ''.join(stringlist)
return '007' in mystring
spy_game([1,0,2,4,0,7,5])
Теперь проблема в том, что, если я запусту (например) spy_game([1,0,2,4,0,7,5])
, он не вернет True
, независимо от того, присутствует ли интересующая последовательность. После того как я решил вернуть список как таковой после процесса фильтрации, я обнаружил, что все числа, кроме тех, что в середине, отфильтрованы. Так что в этом примере, если я return nums
вернусь [0, 4, 0, 7]
, хотя 4 должен был быть удален. Я знаю, что есть более оптимальные альтернативы этому алгоритму, но я просто хочу понять, почему он не работает. Спасибо.