Использование next
с выражением генератора:
lst = [1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1]
res = next(j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j and i == k)
Если вам нужны все такие числа, используйте вместо этого понимание списка:
res = [j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j and i == k]
Если вам нужно условие, которое будетпоказать все числа, которые выше, чем их предыдущие и следующие:
lst = [1,2,3,4,3,2,3,1,2,1,2,3,4,5,6,7,8,6]
res = [j for i, j, k in zip(lst, lst[1:], lst[2:]) if i < j > k]
[4, 3, 2, 8]
.
Пояснение
- Вы можете перебрать список со сдвинутыми версиями самого себя с помощью
zip
. - Для каждого триплета проверьте два условия.
- Используйте
next
для извлечения таких триплетов;если такого триплета не существует, вы встретите ошибку StopIteration
. - Никогда не называйте переменную после встроенной, например, используйте
lst
вместо list
.