Python:'in' 条件运算符的逐元素实现

Python: Element-wise implementation of 'in' conditional operator

所以,我有两个列表:

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 ) 也会引发错误。

Sets 更适合这个:

set(y) <= set(x)

请注意,这取决于您的列表内容是不可变的,因为可变(或者更具体地说,不可散列)对象不能是集合的成员。在这种情况下,整数列表很好。

all(e in x for e in y)

同样,您可以使用

any(e in x for e in y)

查看y中的元素是否在x中。

如果你坚持让它们成为列表,你可以使用all()函数:

all(item in x for item in y)