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)
所以,我有两个列表:
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)