以pythonic方式测试值

时间:2018-03-06 12:50:38

标签: python-3.x

我想做

if ((a,b,c==1,1,1)):
    <do something if a,b,c are all 1>

以上,不起作用。会有类似的东西吗?

以下是一些不符合以下评论的示例。 这看起来很明智

if((1,1,0)==(1,1,0)): print("same")
same

就像这样

if((1,1,0)!=(1,1,1)): print("different")
different



In [86]: if(1,1,0==1,1,0): print("same")
same

In [87]: if(1,1,0==1,1,1): print("same")
same

In [88]: if(1,0,0==1,1,1): print("same")
same

所以我的原始Q实际上是与括号括号相关的问题。 if将传递TRUE,因为没有列表或元组之间的比较我只是比较==或!=

两侧的中心元素

1 个答案:

答案 0 :(得分:0)

我让这个工作

 if [a,b,c]==[1,1,1]:

这也很好

if (a,b,c)==(1,1,1):

此代码简短,可重复且可验证。万一有人想知道。

我在这里看到的根本错误是我有效地做了

if (1,1,1==1,0,1): ...

而不是

if (1,1,1)==(1,0,1): ...

因为

if (1,1,0 == 0,0,0): print ("same")
... 
same

>>> 1,1,0==0,0,0

(1,1,True,0,0)

尽管

    >>> (1,1,0)==(0,0,0)
False

换句话说,我只用==的第一个RHS来测试LHS的最后一个元素。