0

所以,我有两个列表:

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

4

3 回答 3

6

套装更适合这个:

set(y) <= set(x)

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

于 2017-10-31T19:20:58.647 回答
1

all(e in x for e in y)

同样,您可以使用

any(e in x for e in y)

查看是否有任何元素yx.

于 2017-10-31T19:22:07.970 回答
1

如果您坚持让它们成为列表,则可以使用以下all()功能:

all(item in x for item in y)
于 2017-10-31T19:22:45.217 回答