假设所有w,x,y和z都可以在列表A中。是否有快捷方式来检查它是否包含仅 x - 例如。没有否定其他变量?
w,x,y和z都是单个值(不是列表,元组等)。
答案 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