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
,