Python:对';在';条件运算符

Python:对';在';条件运算符,python,if-statement,conditional,elementwise-operations,Python,If Statement,Conditional,Elementwise Operations,因此,我有两个清单: x =[170 169 168 167 166 165 183 201 219 237 255 274 293 312 331 350] y =[201,168] 我想写一个条件if语句,该语句仅当y的所有内容都在x中时才为true。我该怎么做 例如--assert(y[0]在x中)和assert(y[a]在x中)都给出True,但是assert(y在x中)给出False。类似地,assert(x中的任意(y)也会引发一个错误。对此更好: set(y) <= set

因此,我有两个清单:

x =[170 169 168 167 166 165 183 201 219 237 255 274 293 312 331 350]
y =[201,168]
我想写一个条件
if
语句,该语句仅当
y
的所有内容都在
x
中时才为true。我该怎么做

例如--
assert(y[0]在x中)
assert(y[a]在x中)
都给出
True
,但是
assert(y在x中)
给出
False
。类似地,
assert(x中的任意(y)
也会引发一个错误。

对此更好:

set(y) <= set(x)
set(y)
all(e在x中表示e在y中)

同样,您可以使用

any(e在x中表示e在y中)


要查看
y
中的任何元素是否在
x

中,如果您坚持要将它们列为列表,可以使用
all()
函数:

all(item in x for item in y)

你为什么这样使用
assert
assert
应该用于检查代码逻辑的有效性,而不是验证数据。顺便问一下,
x
实际上是一个普通的Python列表吗?看起来它可能是一个Numpy数组,在这种情况下,您应该使用Numpy函数或方法。@PM2Ring您能在第一条评论中解释一下吗?我同意第二种说法,断言是用来测试不应该发生的事情。如果引发断言,则表示程序逻辑错误,需要更改。看见