У меня есть два списка, A
& B
, и я хотел бы проверить, содержится ли A
в B
.Под «содержащимися» я подразумеваю, что элементы A
появляются в том же порядке в пределах B
без каких-либо других элементов между ними.То, что я ищу, очень похоже на поведение A in B
, если они были строками.
Некоторые элементы A
будут повторяться.Мы можем предположить, что A
будет короче B
.
Существует множество ответов на аналогичные вопросы по SO, но большинство отвечает на другой вопрос:
- Is
A
элемент B
?(Не мой вопрос: B
- это плоский список, а не список списков.) - Содержатся ли все элементы
A
в B
?(Не мой вопрос: я также обеспокоен порядком.) - Является ли
A
подсписком B
?(Не мой вопрос: я не хочу знать, появляются ли элементы A
в том же порядке в B
, я хочу знать, появляются ли они точно , как они где-то в B
.)
Если бы операция была реализована как ключевое слово containedin
, она бы работала так.
>>> [2, 3, 4] containedin [1, 2, 3, 4, 5]
True
>>> [2, 3, 4] containedin [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
False
>>> [2, 3, 4] containedin [5, 4, 3, 2, 1]
False
>>> [2, 2, 2] containedin [1, 2, 3, 4, 5]
False
>>> [2, 2, 2] containedin [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
False
>>> [2, 2, 2] containedin [1, 1, 1, 2, 2, 2, 3, 3, 3]
True
Существует ли краткий способ выполнить эту операцию в Python?Я скучаю по какой-то важной терминологии, которая привела бы меня к ответу быстрее?