Решение задачи: 3 последовательных значения
Методом последовательного подбора чисел из списка (x) нужно найти 3 последовательных значения которые равны списку (у). Как можно решить эту задачу? Вот мой код, как я пытался сделать
x = [12, 111,999, 333333, 22222222, 408, 1142, 326, 734, 45, 281,]
y = [734, 45, 281]
#подбор первого числа которая больше 500 но меньше 1500
for i in range(len(x)):
if 500 <= x[i] <= 1500 : break
z = x[i:i+3]
if y == z:
print("верно")
else:
print("не верно")
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Эту задачку можно решить в лоб через срезы:
- Перебираем индексы
x - Берем у
xсрез от текущего индекса и на длинуy - Если срез равен
y, то завершаем перебор и выводим чтоверно
Наглядно на итерациях:
i = 0,sub_arr = [12, 111, 999]i = 1,sub_arr = [111, 999, 333333]- ...
i = 8,sub_arr = [734, 45, 281]
Пример:
x = [12, 111, 999, 333333, 22222222, 408, 1142, 326, 734, 45, 281, ]
y = [734, 45, 281]
found = False
for i in range(len(x)):
sub_arr = x[i:i+len(y)]
if sub_arr == y:
found = True
break
print("верно" if found else "не верно")