1

使用 python 2.7.4

假设我有一个清单

list = ['abc', 'def']

我想看看它是否包含某些东西。所以我尝试:

 [IN:] 'abc' in list
[OUT:] True
 [IN:] 'def' in list
[OUT:] True
 [IN:] 'abc' and 'def' in list
[OUT:] True

但是当我 list.pop(0) 并重复最后一次测试时:

 [IN:] 'abc' and 'def in list
[OUT:] True

虽然:

list = ['def']

有人知道为什么吗?

4

1 回答 1

5

那是因为:

abc' and 'def' in list

相当于:

('abc') and ('def' in list) #Non-empty string is always True

使用'abc' in list and 'def' in list或 用于多个项目,您也可以使用all()

all(x in list for x in ('abc','def'))

不要list用作变量名,它是内置类型。

于 2013-09-09T09:07:27.383 回答