检查列表是否仅包含项目x

时间:2012-08-31 21:31:41

标签: python list

假设所有w,x,y和z都可以在列表A中。是否有快捷方式来检查它是否包含 x - 例如。没有否定其他变量?

w,x,y和z都是单个值(不是列表,元组等)。

8 个答案:

答案 0 :(得分:20)

A=[w,y,x,z]
all(p == x for p in A)

答案 1 :(得分:13)

那,或者如果你不想处理循环:

>>> a = [w,x,y,z]
>>> a.count(x) == len(a)

答案 2 :(得分:4)

这会检查element中的所有A是否等于x而不参考任何其他变量:

all(element==x for element in A)

答案 3 :(得分:2)

如果列表中的所有项目都是可以清除的:

set(A) == set([x])

答案 4 :(得分:2)

{x} == {w,x,y,z} & set(A)

如果[w,x,y,z]中的所有A和项目都可以播放,则此方法有效。

答案 5 :(得分:0)

我不确定是什么而不否定其他变量意味着,但我怀疑这是你想要的:

if all(item == x for item in myList): 
    #do stuff

答案 6 :(得分:0)

另一种方式:

>>> [x] * 4 == [x,w,z,y]
许多人已经说过了。

答案 7 :(得分:0)

这个问题有两种解释:

首先,是[w,y,z]中包含的x的值:

>>> w,x,y,z=1,2,3,2
>>> any(x == v for v in [w,y,z])
True
>>> w,x,y,z=1,2,3,4
>>> any(x == v for v in [w,y,z])
False

或者它可能意味着它们代表相同的对象:

>>> w,x,y,z=1,2,3,4
>>> any(x is v for v in [w,y,z])
False
>>> w,x,y,z=1,2,3,x
>>> any(x is v for v in [w,y,z])
True