Python: поэлементная реализация условного оператора in

Итак, у меня есть два списка:

x =[170 169 168 167 166 165 183 201 219 237 255 274 293 312 331 350]
y =[201,168]

Я хочу написать условное if утверждение, которое верно, только если все содержимое y находятся в x, Как мне это сделать?

Например - assert(y[0] in x) а также assert(y[a] in x) оба дают True, но assert(y in x) дает False, Так же, assert( any(y) in x ) также выдает ошибку.

3 ответа

Решение

Наборы лучше для этого:

set(y) <= set(x)

Обратите внимание, что это зависит от того, является ли содержимое вашего списка неизменным, поскольку изменяемые (или, более конкретно, не подлежащие изменению) объекты не могут быть членами наборов. Как и в этом случае, списки целых чисел в порядке.

Если вы настаиваете, чтобы они были списками, вы можете использовать all() функция:

all(item in x for item in y)

all(e in x for e in y)

Точно так же вы можете использовать

any(e in x for e in y)

Чтобы увидеть, если какие-либо элементы в y находятся в x,

Другие вопросы по тегам