найти элементы в списке с условием полного заполнения, которому нужен предыдущий элемент - PullRequest
1 голос
/ 31 марта 2020

Итак, я хочу проверить, содержит ли список элемент, который выполняет условие, для которого необходим предыдущий элемент. Например:

liste = [1,3,5,2,6,4,7,1,3,5,2,3,4,7]

А теперь я хочу проверить наличие двух чисел, если они встречаются в списке последовательно (например, find(liste, 3, 4) выдаст TRUE, если 3 будет непосредственно перед 4 в списке массивов, иначе FALSE)

Что вызывает у меня проблемы, так это то, что число встречается в массиве несколько раз. И мне нужно проверить это на каждый случай. Любые идеи?

К вашему сведению: я реализовал это в javascript, но теперь хочу это в python. В javascript я использую:

!!liste.find((element, idx) => idx > 0 && liste[idx-1] == 3 && element == 4)

Но у меня возникают проблемы с переводом этого в pyhton ...

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Вы можете сделать следующее zip + any :

liste = [1, 3, 5, 2, 6, 4, 7, 1, 3, 5, 2, 3, 4, 7]


def find(lst, first, second):
    return any((first, second) == pair for pair in zip(lst, lst[1:]))

print(find(liste, 3, 4))

Выход

True
0 голосов
/ 31 марта 2020
zip(liste, liste[1:])

даст вам попарный итератор для каждого элемента и его предшественника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...