假设所有 w、x、y 和 z 都可以在列表 A 中。是否有检查它是否只包含x 的快捷方式——例如。不否定其他变量?
w、x、y 和 z 都是单个值(不是列表、元组等)。
A=[w,y,x,z]
all(p == x for p in A)
那,或者如果您不想处理循环:
>>> a = [w,x,y,z]
>>> a.count(x) == len(a) and a
(and a
添加以检查空列表)
这将检查所有element
s inA
是否等于x
不参考任何其他变量:
all(element==x for element in A)
如果列表中的所有项目都是可散列的:
set(A) == set([x])
{x} == {w,x,y,z} & set(A)
如果所有[w,x,y,z]
和其中的项目A
都是可散列的,这将起作用。
我不确定如果不否定其他变量意味着什么,但我怀疑这就是你想要的:
if all(item == x for item in myList):
#do stuff
这是另一种方式:
>>> [x] * 4 == [x,w,z,y]
许多已经说过的。
这个问题有两种解释:
首先,是 [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