以pythonic方式测试值

问题描述 投票:-3回答:1

我想要做

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,因为没有列表或元组之间的比较我只是比较==或!=的任一侧的中心元素

python-3.x
1个回答
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的最后一个元素。

© www.soinside.com 2019 - 2024. All rights reserved.