检查python列表的内容

时间:2013-09-09 09:06:03

标签: python list collections conditional-statements

使用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']

有人知道为什么吗?

1 个答案:

答案 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作为变量名,它是内置类型。