使用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']
有人知道为什么吗?
答案 0 :(得分: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
作为变量名,它是内置类型。